두 개의 튜플 (a, b) (c, d), 그 조합은 a,c a,db,c b,d입니다.
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)]
목록 작성기를 사용하여 중첩된 목록을 만들어 보세요.
>>> [[[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]]
첫 번째 목록을 반복하고 두 번째 목록을 순열하여 함께 압축합니다.
>>> 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!