itertools [완전탐색]
2022. 5. 3. 23:05ㆍPrograming 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 |
---|