> 백엔드 개발 > 파이썬 튜토리얼 > 서로 다른 길이의 목록에서 순열을 효율적으로 쌍으로 연결하는 방법은 무엇입니까?

서로 다른 길이의 목록에서 순열을 효율적으로 쌍으로 연결하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-29 01:03:02
원래의
659명이 탐색했습니다.

How to Efficiently Pair Permutations from Lists of Disparate Lengths?

서로 다른 목록의 순열을 효율적으로 페어링

목표는 다음의 페어링 수에 따라 두 목록의 요소에 대한 고유한 조합을 생성하는 것입니다. 더 짧은 목록의 길이. 이 개념을 설명해 보겠습니다.

두 개의 목록을 고려해 보세요.

names = ['a', 'b']
numbers = [1, 2]
로그인 후 복사

원하는 출력은 다음과 같습니다.

[('a', 1), ('b', 2)]
[('b', 1), ('a', 2)]
로그인 후 복사

이를 달성하려면 Python의 강력한 기능을 활용할 수 있습니다. itertools.product. 작동 방식은 다음과 같습니다.

<code class="python">from itertools import product

a = ['foo', 'melon']
b = [True, False]
c = list(product(a, b))</code>
로그인 후 복사

제품을 활용하면 가능한 모든 쌍별 조합을 얻을 수 있습니다.

[('foo', True), ('foo', False), ('melon', True), ('melon', False)]
로그인 후 복사

한 목록이 다른 목록보다 긴 시나리오(예: 이름에 세 개가 있는 경우) 요소는 2개만 있음) 순열은 더 짧은 목록을 기반으로 계산됩니다.

names = ['a', 'b', 'c']
numbers = [1, 2]
로그인 후 복사

예상 출력:

[('a', 1), ('b', 2)]
[('b', 1), ('a', 2)]
[('a', 1), ('c', 2)]
[('c', 1), ('a', 2)]
[('b', 1), ('c', 2)]
[('c', 1), ('b', 2)]
로그인 후 복사

이 접근 방식을 사용하면 필요한 모든 가능한 조합을 얻을 수 있습니다. 입력 목록의 상대적 길이에 관계없이 특정 사용 사례에 적합합니다.

위 내용은 서로 다른 길이의 목록에서 순열을 효율적으로 쌍으로 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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