본문 바로가기

PYTHON LANGUAGE

ITERTOOLS

import itertools

arr = ['A','B','C','D']
comb_arr = list(itertools.combinations(arr,2)) # 중복 X --> ORDER MATTERS (ex. only [A,B])
perm_arr = list(itertools.permutations(arr,2)) # 중복 X --> ORDER DOES NOT MATTER (ex. [A,B] and [B,A])
product_arr = list(itertools.product(arr,repeat = 2)) # 중복 O --> CARTESIAN PRODUCT
comb_repl_arr = list(itertools.combinations_with_replacement(arr,2)) # 중복 O but [A,B] = [B,A]

print(len(comb_arr),comb_arr)
print(len(perm_arr),perm_arr)
print(len(product_arr),product_arr)
print(len(comb_repl_arr),comb_repl_arr)

6   [('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]
12 [('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'A'), ('B', 'C'), ('B', 'D'), ('C', 'A'), ('C', 'B'), ('C', 'D'), ('D', 'A'), ('D', 'B'), ('D', 'C')]
16 [('A', 'A'), ('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('B', 'D'), ('C', 'A'), ('C', 'B'), ('C', 'C'), ('C', 'D'), ('D', 'A'), 

     ('D', 'B'), ('D', 'C'), ('D', 'D')]
10 [('A', 'A'), ('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'B'), ('B', 'C'), ('B', 'D'), ('C', 'C'), ('C', 'D'), ('D', 'D')]

'PYTHON LANGUAGE' 카테고리의 다른 글

2D Array  (0) 2022.06.25
ZIP (aggregate two iterators as list of tuples)  (0) 2022.06.20
Sort  (0) 2022.06.19
DICTIONARY  (0) 2021.12.15