Python에서 zip(*[iter(s)]*n)을 사용하여 목록을 동일한 청크로 분할하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-20 13:03:21
원래의
387명이 탐색했습니다.

How to Split a List into Equal Chunks Using zip(*[iter(s)]*n) in Python?

Python에서 Iterable을 청크로 압축

Python에서 zip([iter(s)]n) 함수를 사용하면 목록을 동일한 길이의 덩어리로 분할할 수 있습니다. 작동 방식은 다음과 같습니다.

설명:

  1. iter(s): 입력 목록 s에 대한 반복자를 만듭니다.
  2. [ iter(s)]*n: 이는 각각 동일한 목록 s를 반복하는 n개의 반복기 목록을 생성합니다.
  3. zip(*[iter(s)]*n):

    • *는 반복자 목록을 zip() 함수의 개별 인수로 압축 해제합니다.
    • zip()은 일련의 반복자를 가져와 해당 요소를 튜플로 결합합니다.

상세 코드 등가:

zip(*[iter(s)]*n)의 내부 작동을 이해하기 위해 다음과 같은 등가 코드를 작성해 보겠습니다. 더 자세한 구문:

s = [1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 3

# Create iterators for the list
iter1 = iter(s)
iter2 = iter(s)
iter3 = iter(s)

# Zip the iterators to create chunks
chunks = zip(iter1, iter2, iter3)

# Convert the generator to a list
list_chunks = list(chunks)
로그인 후 복사

이 장황한 버전에서는:

  1. 동일한 목록 s에 대해 세 개의 반복자를 만듭니다.
  2. 이 반복자를 zip( ) 압축 해제를 사용합니다.
  3. 결과 생성기 표현식은 목록으로 변환되어 청크를 생성합니다.

출력:

의 출력 원본 코드와 장황한 코드는 모두 동일합니다.

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
로그인 후 복사

이것은 zip(*[iter(s)]*n)이 반복자와 zip 기능을 활용하여 목록을 여러 청크로 편리하게 분할하는 방법을 보여줍니다.

위 내용은 Python에서 zip(*[iter(s)]*n)을 사용하여 목록을 동일한 청크로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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