Menyalurkan Senarai dalam Potongan: Penyelesaian Pythonic
Dalam artikel ini, kami meneroka cara untuk mengulangi senarai Python dalam ketulan, di mana setiap ketulan terdiri daripada bilangan elemen tertentu. Situasi yang diberikan melibatkan bekerja dengan empat integer pada satu masa.
Pendekatan Konvensional
Segmen kod yang disediakan menggambarkan pendekatan gaya C untuk menggunting senarai:
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]
Walaupun kaedah ini berfungsi, ia mungkin tidak sejajar dengan idiomatik Python prinsip.
Penyelesaian Python
1. Menggunakan Fungsi chunker
Sejak Python 3.12, Python telah memperkenalkan fungsi chunker, yang menyediakan cara ringkas dan cekap untuk memotong sebarang jujukan:
def chunker(seq, size): return (seq[pos:pos + size] for pos in range(0, len(seq), size))
Fungsi ini mencipta penjana yang menghasilkan ketulan saiz yang ditentukan daripada urutan yang diberikan. Kod berikut mempamerkan penggunaan:
for group in chunker(text, 7): print(repr(group),)
2. Menggunakan itertools.islice
Untuk versi Python sebelum 3.12, itertools.islice boleh digunakan untuk chunking:
from itertools import islice def grouper(seq, size): it = iter(seq) while True: chunk = list(islice(it, size)) if not chunk: return yield chunk
Fungsi ini juga mencipta penjana, yang menghasilkan senarai elemen daripada jujukan.
Kesimpulan
Fungsi chunker menyediakan penyelesaian asli dan cekap untuk senarai chunking dalam Python 3.12 dan lebih baru. Untuk versi terdahulu, fungsi kerapu menawarkan alternatif yang sesuai. Kaedah ini membolehkan kod yang lebih ringkas dan idiomatik apabila bekerja dengan senarai besar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengulangi Senarai Python dengan Cekap dalam Chunks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!