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문을 돌리는 경우가 있는데,
위와 같이 간단하게 한문장으로 해결되는 경우가 있다.

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

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


댓글 없음:

댓글 쓰기