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

Python에서 N 목록의 가능한 모든 순열

<시간/>

두 개의 목록이 있고 첫 번째 요소의 각 요소를 두 번째 목록의 각 요소와 결합해야 하는 경우 다음과 같은 접근 방식이 있습니다.

For 루프 사용

이 직접적인 접근 방식에서 우리는 각 목록의 요소 순열을 포함하는 목록 목록을 만듭니다. 다른 for 루프 내에서 for 루프를 설계합니다. 내부 for 루프는 두 번째 목록을 참조하고 Outer follow는 첫 번째 목록을 참조합니다.

예시

A =[5,8]B =[10,15,20]print("주어진 목록:", A, B) 순열 =[[m, n] for m in A for n in B ] 

출력

위의 코드를 실행하면 다음과 같은 결과가 나타납니다.

주어진 리스트:[5, 8] [10, 15, 20]주어진 값의 순열은 다음과 같습니다:[[5, 10], [5, 15], [5, 20], [8, 10] , [8, 15], [8, 20]]

itertools 사용

itertools 모듈에는 product라는 반복자가 있습니다. 위의 중첩 for 루프가 수행하는 것과 동일한 작업을 수행합니다. 필요한 제품을 제공하기 위해 내부적으로 중첩 for 루프를 만듭니다.

예시

import itertoolsA =[5,8]B =[10,15,20]print("주어진 목록:", A, B)result =list(itertools.product(A,B))print("순열 주어진 목록 중 :" + str(result))

출력

위의 코드를 실행하면 다음과 같은 결과가 나타납니다.

주어진 리스트 :[5, 8] [10, 15, 20]주어진 값의 순열은 [(5, 10), (5, 15), (5, 20), (8, 10) , (8, 15), (8, 20)]