algorithm/개념
[알고리즘] 완전탐색 / itertools / 순열 중복순열 조합 중복조합
유랄라-
2022. 3. 12. 17:37
반응형
itertools 모듈
순열 | permutations(list, r=None) |
중복순열 | product(list, repeat=1) |
조합 | combinations(list, r) |
중복조합 | combinations_with_replacement(list, r) |
# 순열 : permutations(list, r=None)
from itertools import permutations
random_list=['A','B','C']
resultA=permutations(random_list)
resultB=permutations(random_list,2)
print(list(resultA))
print(list(resultB))
결과>>
[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
list형식이 아닌 것으로 프린트할 때
for i in resultA:
print(i)
결과>>
('A', 'B', 'C')
('A', 'C', 'B')
('B', 'A', 'C')
('B', 'C', 'A')
('C', 'A', 'B')
('C', 'B', 'A')
# 중복 순열 : product(list, repeat=1)
from itertools import product
random_list=['A','B','C']
resultA=product(random_list)
resultB=product(random_list,repeat=2)
print(list(resultA))
print(list(resultB))
결과>>
[('A',), ('B',), ('C',)]
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]
# 조합 : combinations(list, r)
from itertools import combinations
random_list = ['A', 'B', 'C']
resultA = combinations(random_list,1)
resultB = combinations(random_list,2)
print(list(resultA))
print(list(resultB))
결과>>
[('A',), ('B',), ('C',)]
[('A', 'B'), ('A', 'C'), ('B', 'C')]
# 중복 조합 : combinations_with_replacement(list, r)
from itertools import combinations_with_replacement
random_list = ['A', 'B', 'C']
resultA = combinations_with_replacement(random_list,1)
resultB = combinations_with_replacement(random_list,2)
print(list(resultA))
print(list(resultB))
결과>>
[('A',), ('B',), ('C',)]
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
반응형