>  기사  >  백엔드 개발  >  Python에서 크기가 균일하지 않은 목록을 압축하는 방법: `itertools.cycle` 및 사용자 정의 루프 탐색

Python에서 크기가 균일하지 않은 목록을 압축하는 방법: `itertools.cycle` 및 사용자 정의 루프 탐색

Linda Hamilton
Linda Hamilton원래의
2024-10-29 00:17:02820검색

How to Zip Unevenly Sized Lists in Python: Exploring `itertools.cycle` and Custom Loops

크기가 일정하지 않은 목록 압축: 대체 접근 방식 탐색

Python에 내장된 zip 함수의 고유 동작은 다음 목록을 처리할 때 문제를 야기합니다. 다양한 길이. 이는 한 목록이 다른 목록보다 짧아서 쌍을 이루는 요소 수가 동일하지 않은 경우에 분명합니다.

이 제한 사항을 해결하기 위해 원하는 출력을 얻기 위한 몇 가지 기술이 있습니다. 긴 쪽의 길이를 맞춰주세요.

1. itertools.cycle과 함께 zip 함수 활용

이 방법에는 Python의 itertools.cycle 함수를 활용하여 더 짧은 목록의 요소를 끝없이 반복하는 반복 가능 개체를 만드는 것이 포함됩니다. 순환을 활용하면 긴 목록의 요소를 짧은 목록의 반복 요소와 쌍으로 묶는 것이 가능해집니다.

<code class="python">A = [1,2,3,4,5,6,7,8,9]
B = ["A","B","C"]

from itertools import cycle
zip_list = zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B)</code>

2. 사용자 정의 For 루프 구현

대체 접근 방식은 더 큰 목록을 수동으로 반복하고 각 요소를 더 짧은 목록의 해당 요소와 쌍을 이루는 것입니다. 더 짧은 목록이 소진되면 반복이 처음부터 다시 시작되어 더 큰 목록의 모든 요소가 쌍을 이룰 때까지 요소를 반복합니다.

<code class="python">idx = 0
zip_list = []
for value in larger:
    zip_list.append((value,smaller[idx]))
    idx += 1
    if idx == len(smaller):
        idx = 0</code>

이러한 전략 중 하나를 사용하면 개발자는 두 개의 목록을 효과적으로 압축할 수 있습니다. 긴 목록의 길이와 일치하도록 필요에 따라 더 짧은 목록이 반복되도록 합니다. 이는 길이가 다른 목록 작업과 관련된 다양한 데이터 처리 및 조작 작업에 대한 가능성을 열어줍니다.

위 내용은 Python에서 크기가 균일하지 않은 목록을 압축하는 방법: `itertools.cycle` 및 사용자 정의 루프 탐색의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.