공식문서 참고하기:
https://docs.python.org/ko/3/library/itertools.html#itertools.combinations
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
itertools
효율적인 루핑을 위한 이터레이터를 만드는 함수
무한 이터레이터
- count(): 숫자 start로 시작하여 균등 간격의 값을 반환하는 이터레이터를 생성함.
- cycle(): iterable에서 요소를 반환하고 각 사본을 저장하는 이터레이터를 만듦. iterable이 소진되면, 저장된 사본에서 요소를 반환하는 것을 무한히 반복함.
- repeat(): 반복해서 객체를 반환하는 이터레이터를 생성함. times(시간)이 지정되지 않으면 끝없이 실행됨.
이터레이터 | 결과 | ex) |
itertools.count(start, step) | start, start+step, start+2*step, ... | count(10) --> 10 11 12 13 14 ... |
itertools.cycle(iterable) | p0, p1, … plast, p0, p1, … | cycle('ABCD') --> A B C D A B C D ... |
itertools.repeat(object[, times]) | elem, elem, elem, … 끝없이 또는 최대 times번 | repeat(10, 3) --> 10 10 10 |
조합형 이터레이터
- product()
- permutations()
- combinations()
- combinations_with_replacement()
이터레이터 | 설명 |
itertools.product(*iterables, repeat=1) | 여러 iterable의 데카르트 곱을 반환함 |
itertools.permutations(iterable, r=None) | iterable에서 원소 개수가 r개인 순열 뽑기 |
itertools.combinations(iterable, r) | iterable에서 원소 개수가 r개인 조합 뽑기 |
itertools.combinations_with_replacement(iterable, r) | iterable에서 원소 개수가 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 |
'⌨️ Algorithm > Python' 카테고리의 다른 글
[Algorithm] Week 5. 정렬 (0) | 2023.01.31 |
---|---|
[Algorithm] Week 4. DFS/BFS (0) | 2023.01.24 |
[Algorithm] Week 3. 구현 (0) | 2023.01.17 |
[Python 문제풀이] 백준 11000번: 강의실 배정 (0) | 2023.01.14 |
[Python 문제풀이] 백준 2212번: 센서 (0) | 2023.01.14 |
댓글