[python] itertools 사용법(순열, 조합)
알고리즘 문제를 풀다 보면 경우의 수를 따져야 되는 경우가 있다. 그럴 때 유용하게 사용할 수 있는 라이브러리가 itertools이다.
✅combinations(iterable, t)
✍iterable(반복 가능한 객체Iterable이란?)에서 원소 개수가 t개인 조합 뽑기
from itertools import combinations
a = "abcd"
for i in combinations(a, 2):
print(i)
실행결과 :
('a', 'b')
('a', 'c')
('a', 'd')
('b', 'c')
('b', 'd')
('c', 'd')
✅combinations_with_replacement(iterable, t)
✍🏻iterable에서 원소 개수가 t개인 중복 조합 뽑기
from itertools import combinations_with_replacement
a = "abcd"
for i in combinations_with_replacement(a, 2):
print(i)
실행결과 :
('a', 'a')
('a', 'b')
('a', 'c')
('a', 'd')
('b', 'b')
('b', 'c')
('b', 'd')
('c', 'c')
('c', 'd')
('d', 'd')
✅permutations(iterable, t)
✍🏻iterable에서 원소 개수가 t개인 순열 뽑기
t값을 통해서 최대길을 지정 가능, t= none으로 설정하면 최대길이 리턴
from itertools import permutations
a = "abc"
for i in permutations(a):
print(i)
실행결과 :
('a','b','c')
('a','c','b')
('b','a','c')
('b','c','a')
('c','a','b')
('c','b','a')
✅product(iterables, repeat=1)
✍🏻여러 iterable의 데카르트곱 리턴
product는 여러 iterable을 넣어줄 수도 있고 짝을 지어 리턴할 수 있습니다.
from itertools import product
e1 = ["a", "b"]
e2 = [1, 2]
for i in product(e1,e2, repeat=1)
print(i)
실행결과
("A", 1)
("A", 2)
("B", 1)
("B", 2)
Author And Source
이 문제에 관하여([python] itertools 사용법(순열, 조합)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ssdii44/python-itertools-사용법순열-조합저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)