Menyalakan Iterator oleh Ketulan dengan Python
Menyalakan ke atas lelaran dengan ketulan saiz tertentu ialah tugas biasa dalam Python. Untuk mencapai matlamat ini, pertimbangkan untuk menggunakan pendekatan berikut:
Menggunakan Fungsi itertools.grouper():
Fungsi itertools.grouper() menyediakan kaedah serba boleh untuk mengumpulkan yang boleh diubah menjadi kepingan. Walau bagaimanapun, ia memerlukan pengendalian tambahan untuk menampung bahagian akhir yang tidak lengkap, yang boleh dicapai dengan parameter yang tidak lengkap.
from itertools import grouper it = iter([1, 2, 3, 4, 5, 6, 7]) chunk_size = 3 chunks = list(grouper(it, chunk_size, incomplete='ignore')) print(chunks) # [[1, 2, 3], [4, 5, 6], [7]]
Menggunakan Fungsi itertools.batched() (Python 3.12 ):
Memperkenalkan dalam Python 3.12, the Fungsi itertools.batched() secara eksplisit mengendalikan chunking dan mengekalkan jenis jujukan asal.
from itertools import batched it = [1, 2, 3, 4, 5, 6, 7] chunk_size = 3 chunks = list(batched(it, chunk_size)) print(chunks) # [[1, 2, 3], [4, 5, 6], [7]]
Penyelesaian Alternatif untuk Leteran Jujukan:
Untuk jujukan, kurang umum tetapi penyelesaian yang mudah ialah menggunakan penghirisan senarai dengan saiz langkah yang sama dengan bongkah saiz.
it = [1, 2, 3, 4, 5, 6, 7] chunk_size = 3 chunks = [it[i:i + chunk_size] for i in range(0, len(it), chunk_size)] print(chunks) # [[1, 2, 3], [4, 5, 6], [7]]
Kaedah ini menyediakan cara yang cekap untuk mengulang ke atas satu iterator mengikut ketulan, membolehkan pengendalian fleksibel bagi ketulan akhir yang tidak lengkap dan pengekalan jenis urutan asal apabila perlu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengulang Melalui Iterator dalam Ketulan Menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!