Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 두 개의 튜플 간 모든 쌍 조합 구하는 방법

두 개의 튜플 사이에서 가능한 모든 쌍 조합(pair combination)을 구해야 할 때는 리스트 컴프리헨션(list comprehension)과 함께 itertools 모듈의 product() 함수를 활용하면 간단하게 해결할 수 있습니다.

product() 함수는 여러 집합의 데카르트 곱(Cartesian product)을 계산해 주는 도구로, 반복 가능한 객체들의 모든 조합을 순서대로 생성합니다.

아래는 실제 구현 예시입니다.

예제 코드

from itertools import product
N = 2
print("N의 값이 초기화되었습니다:")
print(N)

my_result = [ele for ele in product(range(1, N + 1), repeat = N)]

print("2까지의 모든 튜플 조합은 다음과 같습니다:")
print(my_result)

출력 결과

N의 값이 초기화되었습니다:
2
2까지의 모든 튜플 조합은 다음과 같습니다:
[(1, 1), (1, 2), (2, 1), (2, 2)]

코드 설명

  • itertools 모듈에서 product 함수를 임포트합니다.

  • N 값을 설정한 뒤, 콘솔에 출력하여 확인합니다.

  • 리스트 컴프리헨션을 사용해 1부터 N까지의 값 범위를 순회하며, repeat = N 옵션을 통해 N개 원소로 이루어진 모든 조합을 생성합니다.

  • 생성된 결과는 변수 my_result에 저장됩니다.

  • 최종 결과를 콘솔 화면에 출력합니다.

참고 사항

repeat 매개변수의 값을 변경하면 조합의 길이를 자유롭게 조절할 수 있습니다. 예를 들어 N이 3이면 (1,1,1)부터 (3,3,3)까지 총 27개의 조합이 생성됩니다. 이 방식은 중복 허용 순열(permutation with repetition)을 구하는 것과 동일한 효과를 가지므로, 알고리즘 문제 풀이나 데이터 조합 작업에 유용하게 활용될 수 있습니다.