1. 경우의 수
- permutations() - 순열
순열은 순서를 고려해서 뽑는 경우의 수다.
nPr 로 쓰이는데 이를 풀어서 말하면 n개 중 순서를 고려하여 r개를 뽑는 것을 말한다.
-예시
num = [2,1,3,4,1]
result = list(itertools.permutations(num, 2))
- 결과값
>> [(2, 1), (2, 3), (2, 4), (2, 1), (1, 2), (1, 3),
(1, 4), (1, 1), (3, 2), (3, 1), (3, 4), (3, 1), (4, 2),
(4, 1), (4, 3), (4, 1), (1, 2), (1, 1), (1, 3), (1, 4)]
- 1이 2개 있기때문에 중복된 결과가 나온다.
- combinations() - 조합
조합이라고 하면 nCr 을 많이 떠올릴 것이다.
n개 중에서 순서를 무시하고 단순히 r개를 뽑기만 하는 경우의 수이다.
이제 함수를 살펴보자.
itertools.combinations(순회가능한 데이터, 뽑는 수)의 형태이다.
- 예시
num = [2,1,3,4,1]
result = list(itertools.combinations(numbers, 2))
- 결과
>> [(2, 1), (2, 3), (2, 4), (2, 1), (1, 3), (1, 4), (1, 1), (3, 4), (3, 1), (4, 1)]
- 겹치는 수가 있기때문에 똑같은 경우가 나온다.
2. 그 외
- 무한 이터레이터 (cycle, count, repeat)
- 가장 짧은 입력 시퀀스에 종료되는 이터레이터(accumulate, chain 등등)
더 알아보고 싶다면 아래 파이썬 라이브러리 도큐먼트에 들어가서 확인하길 바란다!