>백엔드 개발 >파이썬 튜토리얼 >Python에서 청크 목록을 효율적으로 반복하는 방법은 무엇입니까?

Python에서 청크 목록을 효율적으로 반복하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-23 09:06:24958검색

How to Efficiently Iterate Over a List in Chunks in Python?

청크 목록을 반복하는 방법

대규모 데이터 세트 처리와 같은 다양한 프로그래밍 시나리오에서 청크 목록을 반복해야 할 필요성이 발생합니다. 이 문서에서는 이 작업을 수행하는 가장 효율적이고 Python적인 방법을 자세히 설명합니다.

전통적으로 명시적인 인덱스 조작과 함께 범위 루프를 사용하는 C 스타일 접근 방식이 사용되었습니다.

for i in range(0, len(ints), 4):
    # dummy op for example code
    foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3]

이 문서에서는 방법은 간단할 수 있지만 Python적인 우아함이 부족합니다.

더 Python적인 대안은 제안:

while ints:
    foo += ints[0] * ints[1] + ints[2] * ints[3]
    ints[0:4] = []

이 접근 방식은 Python의 리스트 슬라이싱을 활용하여 처리된 요소를 제거하여 더욱 깔끔한 솔루션을 제공합니다.

Python 3.12의 Chunker() 소개

Python 3.12가 출시되면서 많은 기대를 모았던 Chunker() 함수가 소개:

from itertools import islice

def chunker(seq, size):
    it = iter(seq)
    while True:
        chunk = list(islice(it, size))
        if not chunk:
            break
        yield chunk

이 기능은 모든 유형의 시퀀스를 우아하게 반복하여 원하는 크기의 덩어리로 나눕니다. 다음 예는 그 다양성을 보여줍니다.

text = "I am a very, very helpful text"

for group in chunker(text, 7):
    print(repr(group),)
# 'I am a ' 'very, v' 'ery hel' 'pful te' 'xt'

print('|'.join(chunker(text, 10)))
# I am a ver|y, very he|lpful text

animals = ['cat', 'dog', 'rabbit', 'duck', 'bird', 'cow', 'gnu', 'fish']

for group in chunker(animals, 3):
    print(group)
# ['cat', 'dog', 'rabbit']
# ['duck', 'bird', 'cow']
# ['gnu', 'fish']

chunker() 함수는 Python의 이미 풍부한 목록 조작 생태계를 강화하고 사용자 친화성을 더욱 돋보이게 합니다.

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

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