> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 두 목록의 전체 조합 방법은 무엇입니까?

Python에서 두 목록의 전체 조합 방법은 무엇입니까?

王林
풀어 주다: 2023-05-05 20:34:12
앞으로
1132명이 탐색했습니다.

풀 패키지란 무엇인가요?

두 개의 튜플 (a, b) (c, d), 그 조합은 a,c a,db,c b,d입니다.

방법 1

itertools 클래스를 통해 목록 목록을 생성합니다. 여기에는 두 개의 모든 잠재적 조합이 포함됩니다. 목록

import itertools

list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8,9]
print(list(itertools.product(list1, list2)))
로그인 후 복사

출력 결과:

[(1, 5), (1, 6), (1, 7), (1, 8), (1, 9), (2, 5), (2, 6), (2, 7), (2, 8), (2, 9), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9), (4, 5), (4, 6), (4, 7), (4, 8), (4, 9)]
로그인 후 복사

방법 2

목록 작성기를 사용하여 중첩된 목록을 만들어 보세요.

>>> [[[x,y] for x in list1] for y in list2]
[[[1, 3], [2, 3]], [[1, 4], [2, 4]]]
로그인 후 복사

또는 한 줄 목록을 원할 경우 대괄호를 제거하세요.

>>> [[x,y] for x in list1 for y in list2]
[[1, 3], [1, 4], [2, 3], [2, 4]]
로그인 후 복사

방법 3

첫 번째 목록을 반복하고 두 번째 목록을 순열하여 함께 압축합니다.

>>> from itertools import permutations, repeat
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> list(list(zip(r, p)) for (r, p) in zip(repeat(a), permutations(b)))
[[(1, 4), (2, 5), (3, 6)],
 [(1, 4), (2, 6), (3, 5)],
 [(1, 5), (2, 4), (3, 6)],
 [(1, 5), (2, 6), (3, 4)],
 [(1, 6), (2, 4), (3, 5)],
 [(1, 6), (2, 5), (3, 4)]]
로그인 후 복사

EDIT: Peter Otten이 지적했듯이 내부 zip과 반복은 중복됩니다.

아아아아

위 내용은 Python에서 두 목록의 전체 조합 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿