Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

두 목록의 데카르트 곱을 찾는 Python 프로그램

<시간/>

데이터 l1과 l2의 두 목록이 있다고 가정합니다. 우리는 이 두 목록의 데카르트 곱을 찾아야 합니다. 두 목록이 (a, b) 및 (c, d)와 같으면 데카르트 곱은 {(a, c), (a, d), (b, c), (b, d)}가 됩니다. . 이를 위해 itertools 라이브러리를 사용하고 이 라이브러리에 있는 product() 함수를 사용합니다. 이 함수의 반환 값은 반복자입니다. list() 생성자에 출력을 전달하여 목록으로 변환해야 합니다.

따라서 입력이 l1 =[1,5,6] l2 =[1,2,9]와 같으면 출력은 [(1, 1), (1, 2), (1, 9), (5, 1), (5, 2), (5, 9), (6, 1), (6, 2), (6, 9)]

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • x :=product(l1, l2) 데카르트 곱의 반복자를 가져옵니다.

  • ret :=list(x) x iterator를 list로 변환

  • 리턴 렛

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다.

from itertools import product
def solve(l1, l2):
   return list(product(l1, l2))

l1 = [1,5,6]
l2 = [1,2,9]
print(solve(l1, l2))

입력

[1,5,6], [1,2,9]

출력

[(1, 1), (1, 2), (1, 9), (5, 1), (5, 2), (5, 9), (6, 1), (6, 2), (6, 9)]