itertools [완전탐색]

2022. 5. 3. 23:05Programing Language/Python

완전탐색을 공부하는 도중 itertools 라이브러리라는 것을 알게 되었고 여기서에서 조합, 순열과 관련된 문제에 유용하게 쓰일 수 있는 4가지 함수를 발견하였다.

combibations()

combinations_with_replacement()

product()

permutation()


조합형 이터레이터

이터레이터인자결과
product() p, q, … [repeat=1] 데카르트 곱(cartesian product), 중첩된 for 루프와 동등합니다
permutations() p[, r] r-길이 튜플들, 모든 가능한 순서, 반복되는 요소 없음
combinations() p, r r-길이 튜플들, 정렬된 순서, 반복되는 요소 없음
combinations_with_replacement() p, r r-길이 튜플들, 정렬된 순서, 반복되는 요소 있음
예 결과
product('ABCD', repeat=2) AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD
permutations('ABCD', 2) AB AC AD BA BC BD CA CB CD DA DB DC
combinations('ABCD', 2) AB AC AD BC BD CD
combinations_with_replacement('ABCD', 2) AA AB AC AD BB BC BD CC CD DD

파이썬 itertools 공식문서에 더 자세한 내용이 있으므로 참고하면 좋을 것 같다 https://docs.python.org/ko/3.8/library/itertools.html


combibations() : iterable에서 원소 개수가 r개인 조합 뽑기

 

 

combinations_with_replacement(iterable,r) : iterable에서 원소 개수가 r개인 중복 조합 뽑기

 

permutations(iterable,r) : iterable에서 원소 개수가 r개인 순열 뽑기

r을 지정하지 않거나 r=none 이면 최대 길이의 순열이 리턴이 된다

product(*iterables, repeat=1) : 여러 iterable의 데카르트곱 반환

-> product는 다른 함수와 다르게 인자로 여러 iterable을 넣어줄 수 있고 각각의 모든 짝을 지어서 리턴 할 수 있음

 

'Programing Language > Python' 카테고리의 다른 글

map & set  (0) 2022.05.04