파이썬에서는 iterpools라이브러리에서 순열과 조합, 중복 순열과 중복 조합에 대한 메서드를 제공하고 있다.
라이브러리의 코드가 직접 구현실행하는 것 보다 몇배는 빠르기 때문에 숙지하고, 탐색 알고리즘 등에 활용하도록 하자.
순열 permutation
from itertools import permutations
my_List = [1,2,3,4,5]
for _,elements in enumerate(permutations(my_List,2)):
print(elements)
#(1, 2)
#(1, 3)
# ...
#(5, 3)
#(5, 4)
중복 순열 product
from itertools import product
list_1 = [1,2,3]
list_2 = '45'
# list_1과 list_2를 이용하여 중복 순열
print([x for x in product(list_1,list_2)])
#[(1, '4'), (1, '5'), (2, '4'), (2, '5'), (3, '4'), (3, '5')]
# list_1을 두개 이용하여 중복 순열
print([x for x in product(list_1,repeat = 2)])
#[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
조합 combinations
from itertools import combinations
list_1 = [1,2,3]
print([x for x in combinations(list_1, 2)])
#[(1, 2), (1, 3), (2, 3)]
중복 조합 combinations_with_replacement
from itertools import combinations_with_replacement
list_1 = [1,2,3]
print([x for x in combinations_with_replacement(list_1,2)])
#[(1, 1), (1, 2), (1, 3), (2, 2), (2, 3), (3, 3)]
'[Algorithm] Python Algorithm' 카테고리의 다른 글
[Daira i Noor] Python Algorithm (1) - Binary Searching (0) | 2024.02.22 |
---|---|
[Daira i Noor] Python Algorithm(0) - sorting (0) | 2024.02.21 |
[python] "코테"를 위한 기초 파이썬 (4) - Dictionary (0) | 2024.02.21 |
[python] "코테"를 위한 기초 파이썬 (3) - Enumerate (0) | 2024.02.21 |
[python] "코테"를 위한 기초 파이썬 (2) - List Comprehension & Lambda (0) | 2024.02.20 |