728x90
순열(Permutations) - 순서에 따른 경우의 수
from itertools import permutations
data = ['A', 'B', 'C']
a = list(permutations(data, 3))
print(a)
# [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
조합(Combinations) - 순서가 없는 경우의 수
from itertools import combinations
data = ['A', 'B', 'C']
a = list(combinations(data, 2))
print(a)
# [('A', 'B'), ('A', 'C'), ('B', 'C')]
Product - 같은 요소 중복 허용, 순서가 있는 경우의 수
from itertools import product
data = ['A', 'B', 'C']
a = list(product(data, repeat=2))
print(a)
# [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]
Combinations_with_replace - 같은 요소 중복 허용, 순서가 없는 경우의 수
from itertools import combinations_with_replacement
data = ['A', 'B', 'C']
a = list(combinations_with_replacement(data, 2))
print(a)
# [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
728x90
'파이썬(Python) 공부' 카테고리의 다른 글
math 라이브러리 (0) | 2023.07.20 |
---|---|
이진 탐색을 위한 파이썬 bisect 모듈 (0) | 2023.07.20 |
입력을 위해 사용되는 소스코드 (0) | 2023.07.20 |
람다(lambda) 표현식을 사용하여 함수 작성하기 (0) | 2023.07.20 |
줄바꿈 없이 if문(조건문) 쓰기 (0) | 2023.07.19 |