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!