Python에서 zip() 함수는 여러 반복 가능한 항목의 요소를 결합합니다. 하나의 반복 가능한 튜플로 만듭니다. zip([iter(s)]n) 구문과 함께 사용하면 목록을 동일한 크기의 덩어리로 분할하는 편리한 방법을 제공합니다.
작동 방식:
[iter(s)]n 표현식은 목록 s에 대한 반복자의 n 복사본을 포함하는 목록을 만듭니다. 반복자의 각 복사본은 목록의 시작 부분에서 시작됩니다. *args는 목록을 zip()에 대한 인수로 압축을 풀어 n개의 반복 가능 항목이 함수에 전달되도록 합니다.
자세한 내용:
zip의 기능을 재현하려면 ([iter(s)]n) 자세한 코드 사용:
def verbose_chunk(s, n): """Returns a list of chunks of equal size from a list.""" chunks = [] for i in range(n): chunk = [] for j in range(len(s) // n): chunk.append(next(iter(s))) chunks.append(tuple(chunk)) return chunks
이 코드는 먼저 원하는 청크 수를 반복합니다. 각 청크에 대해 중첩 루프를 사용하여 목록의 요소를 반복하고 청크에 추가합니다. 그런 다음 청크는 튜플로 변환되어 청크 목록에 추가됩니다.
예:
s = [1,2,3,4,5,6,7,8,9] n = 3 print(list(zip(*[iter(s)]*n))) # [(1,2,3),(4,5,6),(7,8,9)] print(verbose_chunk(s, n)) # [(1,2,3),(4,5,6),(7,8,9)]
두 접근 방식 모두 간결한 zip을 사용하여 동일한 결과를 생성합니다. ([iter(s)]n) 목록을 청크로 분할하는 데 더 효율적인 구문을 제공하는 표현식입니다.
위 내용은 Python에서 `zip([iter(s)]*n)`은 어떻게 효율적으로 목록을 동일한 청크로 분할합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!