레이블이 곱집합인 게시물을 표시합니다. 모든 게시물 표시
레이블이 곱집합인 게시물을 표시합니다. 모든 게시물 표시

2020년 1월 28일 화요일

Python itertools product (Catesian product, 카티젼곱, 데카르트 곱)

집합론의 데카르트의 곱이라는 함수가 python에는  itertools안에 product라고 존재한다.

from itertools import product
list_a = ['A','B','C','D']
list_b = ['1','2']
list_result = []
for x in list_a:
  for y in list_b:
    list_result.append((x,y))
print (list_result)
# [('A', '1'), ('A', '2'), ('B', '1'), ('B', '2'), ('C', '1'), ('C', '2'), ('D', '1'), ('D', '2')]

print (list(product(list_a,list_b)))
# [('A', '1'), ('A', '2'), ('B', '1'), ('B', '2'), ('C', '1'), ('C', '2'), ('D', '1'), ('D', '2')]




이건 우리 프로그램을 하다보면 보통 중첩 for문을 돌리는 경우가 있는데,
위와 같이 간단하게 한문장으로 해결되는 경우가 있다.

그것도 수학적 개념과 동일하게 ,

확률론의 순열과도 비슷한 개념이므로
이것 역시 모든 경우의 수를 나열할때 용이하게 사용된다.