Search

[계속해서 추가 예정]itertools

itertools.product

itertools.product 는 두개 이상의 리스트 / 집합끼리의 데카르트 곱을 계산해 iterator로 return
A×B={(x,y)xA ,    yB}A\times B = \{(x, y) | x \in A \ ,\;\; y \in B \}
import itertools A = [1, 2, 3] print(list(itertools.product(A, repeat=2))) # [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)] A = [[1, 2, 3], [4, 5]] print(list(itertools.product(*A))) # [(1, 4), (1, 5), (2, 4), (2, 5), (3, 4), (3, 5)] A = [1, 2, 3] B = [4, 5] print(list(itertools.product(A, B))) # [(1, 4), (1, 5), (2, 4), (2, 5), (3, 4), (3, 5)]
Python
복사

itertools.permutation, itertools.combination

itertools.permutationsitertools.combinations은 간단하게 순열과 조합을 구현할 수 있는 파이썬 패키지이다.
nCr=nPr/r!=n!(nr)!r!nCr = nPr / r!=\frac{n!}{(n-r)!r!}
from itertools import permutations a = [1,2,3] permute = permutations(a,2) print(list(permute)) """출력""" [(1,2),(1,3),(2,1),(2,3),(3,1),(3,2)] # 순서만 다른 요소가 같은 튜플도 포함 from itertools import combinations a = [1,2,3] combi = combinations(a,2) print(list(combi)) """출력""" [(1,2),(1,3),(2,3)] # 같은 요소 포함이면 하나의 튜플로 취급
Python
복사