Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Cekap Mengulangi Senarai dalam Chunks dalam Python?

Bagaimana untuk Cekap Mengulangi Senarai dalam Chunks dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-12-23 09:06:241062semak imbas

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

Cara Mengulangi Senarai dalam Ketulan

Keperluan untuk mengulang senarai dalam ketulan timbul dalam pelbagai senario pengaturcaraan, seperti memproses set data yang besar. Artikel ini menyelidiki cara yang paling berkesan dan Pythonic untuk mencapai tugas ini.

Secara tradisinya, pendekatan gaya-C menggunakan gelung julat dengan manipulasi indeks eksplisit telah digunakan:

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]

Sementara ini kaedah mungkin mudah, ia tidak mempunyai keanggunan Pythonic.

Alternatif yang lebih Pythonic ialah dicadangkan:

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

Pendekatan ini memanfaatkan penghirisan senarai Python untuk mengalih keluar elemen yang diproses, memberikan penyelesaian yang lebih bersih.

Pengenalan Python 3.12 tentang chunker()

Dengan keluaran Python 3.12, yang sangat dinanti-nantikan Fungsi chunker() telah diperkenalkan:

from itertools import islice

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

Fungsi ini secara elegan melelang ke atas sebarang jenis jujukan, membahagikannya kepada ketulan saiz yang dikehendaki. Contoh berikut menggambarkan fleksibilitinya:

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']

Fungsi chunker() meningkatkan ekosistem manipulasi senarai Python yang sudah kaya dan seterusnya menunjukkan kemesraan penggunanya.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mengulangi Senarai dalam Chunks dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn