종종 사용하는 모듈이기 때문에
기록해둡니다.
순열과 조합을 구하기 위해 itertools라는 모듈을 사용합니다.
1. 순열
예시
from itertools import permutations
items = ['A', 'B', 'C', 'D']
print(list(map(''.join, permutations(items)))) # items의 모든 원소를 가지고 순열을 만든다.
print(list(map(''.join, permutations(items, 2)))) # 2개의 원소를 가지고 순열을 만든다
출력
>>['ABCD', 'ABDC', 'ACBD', 'ACDB', 'ADBC', 'ADCB', 'BACD', 'BADC', 'BCAD', 'BCDA', 'BDAC', 'BDCA', 'CABD', 'CADB', 'CBAD', 'CBDA', 'CDAB', 'CDBA', 'DABC', 'DACB', 'DBAC', 'DBCA', 'DCAB', 'DCBA']
>> ['AB', 'AC', 'AD', 'BA', 'BC', 'BD', 'CA', 'CB', 'CD', 'DA', 'DB', 'DC']
2. 조합
예시
from itertools import combinations
items = ['A', 'B', 'C', 'D']
for i in range(1, len(items)): # 조합을 만들려는 아이템과 조합의 수를 반드시넘겨줘야한다.
print(list(map(''.join, combinations(items, i))))
출력
>> ['A', 'B', 'C', 'D']
>> ['AB', 'AC', 'AD', 'BC', 'BD', 'CD']
>> ['ABC', 'ABD', 'ACD', 'BCD']
'Language > Python' 카테고리의 다른 글
[Python] 집합 자료형 (set) (0) | 2019.12.29 |
---|---|
[Python] 리스트 인덱스와 값 동시 접근 (enumerate) (0) | 2019.12.29 |
[Python] 문자열 나누기 (split함수) (0) | 2019.12.29 |
[Python] 빈 리스트 확인 (0) | 2019.12.02 |
[Python] request모듈 (0) | 2019.05.16 |