본문 바로가기
성장하기/Python

product

by 솔로 슈퍼스타 2023. 6. 15.
728x90

파이썬의 product 함수는 itertools 모듈에 속한 함수로, 주어진 여러 개의 이터러블(iterable) 객체들의 곱집합(cartesian product)을 반환합니다. 곱집합은 각각의 이터러블 객체에서 하나의 원소를 선택하여 조합한 모든 가능한 조합을 의미합니다.

product 함수는 다음과 같은 형식으로 사용될 수 있습니다:

 

itertools.product(*iterables, repeat=1)

여기서 iterables는 하나 이상의 이터러블 객체를 나타내며, repeat는 선택적 매개변수로, 각 이터러블 객체를 반복할 횟수를 지정합니다. 기본값은 1입니다.

예를 들어, 다음과 같이 product 함수를 사용할 수 있습니다:

 

import itertools

colors = ['red', 'blue']
sizes = ['S', 'M', 'L']

combinations = itertools.product(colors, sizes)
for combination in combinations:
    print(combination)
    
    
#출력
#('red', 'S')
#('red', 'M')
#('red', 'L')
#('blue', 'S')
#('blue', 'M')
#('blue', 'L')

위의 예제에서는 colors와 sizes라는 두 개의 이터러블 객체를 가지고 product 함수를 호출하여 곱집합을 생성합니다. 결과로는 ('red', 'S'), ('red', 'M'), ('red', 'L'), ('blue', 'S'), ('blue', 'M'), ('blue', 'L')과 같은 모든 가능한 색상과 크기의 조합이 출력됩니다.

product 함수는 이터러블 객체의 길이가 다른 경우에도 작동합니다. 예를 들어, 하나의 이터러블 객체는 2개의 요소를 가지고 있고 다른 하나는 3개의 요소를 가지고 있다면, 곱집합은 총 2 * 3 = 6개의 조합으로 구성됩니다.

product 함수는 반복 가능한 객체를 반환하기 때문에, 필요에 따라 리스트나 튜플로 변환하여 사용할 수도 있습니다. 또한, repeat 매개변수를 사용하여 하나의 이터러블 객체를 여러 번 반복해서 곱집합을 생성할 수도 있습니다.

'성장하기 > Python' 카테고리의 다른 글

yield  (0) 2023.06.16
Union-Find  (0) 2023.06.16
ord  (0) 2023.06.15
DFS(Depth-First Search)와 BFS(Breadth-First Search)  (0) 2023.06.15
set  (0) 2023.06.15