itertools — Functions creating iterators for efficient looping
This module implements a number of iterator building blocks inspired by constructs from APL, Haskell, and SML. Each has been recast in a form suitable for Python. The module standardizes a core set...
docs.python.org
Python으로 코딩테스트를 풀면서 한번쯤 마주하게 되는 itertools 라이브러리에 대해 정리하고자 한다.
- Product
데카르트 곱(cartesian product), 중첩된 for 문과 동일
관계 대수의 product를 생각하면 됨
product('ABCD', repeat=2)
# 결과
AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD
- Permultations (순열)
몇 개를 골라 순서를 고려해 나열한 경우의 수
서로 다른 n개 중 r개를 골라 순서를 정해 나열할 수 있는 개수
permutations('ABCD', 2)
# 결과
AB AC AD BA BC BD CA CB CD DA DB DC
- Combinations (조합)
서로 다른 n개 중에 r개를 골라서 만드는데, 속한 요소가 같다면 동일한 것으로 계산
(e.g. (A,B)와 (B,A) 두 그룹의 경우 같은 요소로 구성되어 있기 때문에 1개만 count)
combinations('ABCD', 2)
# 결과
AB AC AD BC BD CD
원소의 개수가 r개인데, 중복 조합을 뽑을 수 있는 함수도 있다.
combinations_with_replacement('ABCD', 2)
# 결과
AA AB AC AD BB BC BD CC CD DD
반응형
'STUDY > 파이썬' 카테고리의 다른 글
Colab 한글 깨짐 에러 해결 방법 (1) | 2024.12.10 |
---|