내장 기능을 사용하여 크기가 다른 목록 압축
두 개의 목록을 병합할 때 내장된 zip 기능은 더 짧은 목록을 반복할 수 없지만 크기가 다른 목록의 경우 itertools.cycle 함수를 활용하여 이 결과를 얻을 수 있습니다.
Python 패키지 itertools의 사이클은 소진된 후에도 iterable에서 요소를 반복적으로 반환하는 반복기를 생성합니다. zip과 사이클을 결합하면 목록 간의 크기 불일치를 처리하고 필요에 따라 긴 목록이 반복되도록 할 수 있습니다.
예:
<code class="python">A = [1, 2, 3, 4, 5, 6, 7, 8, 9] B = ["A", "B", "C"] # Use itertools.cycle to repeat the shorter list from itertools import cycle zip_list = zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B)</code>
이 예에서는
결과:
zip_list에는 다음 튜플이 포함됩니다. 생성기 객체로서:
[(1, 'A'), (2, 'B'), (3, 'C'), (4, 'A'), (5, 'B'), (6, 'C'), (7, 'A'), (8, 'B'), (9, 'C')]
작동 방식:
itertools.cycle은 iterable(이 경우 B)의 복사본을 생성하고 반복적으로 반환합니다. 강요. zip이 A를 반복하면서 각 요소를 순환 반복기에서 사용 가능한 다음 요소와 쌍을 이룹니다.
A가 B보다 짧은 경우 반복기가 소진되면 프로세스는 B의 처음부터 다시 시작됩니다. 반대로 A가 더 길면 B 반복자는 병합된 목록의 나머지 부분을 채우기 위해 계속 순환합니다.
위 내용은 Python에서 `itertools.cycle`을 사용하여 다양한 크기의 목록을 압축하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!