Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengulang Melalui Iterator dalam Ketulan Menggunakan Python?

Bagaimanakah Saya Boleh Mengulang Melalui Iterator dalam Ketulan Menggunakan Python?

Susan Sarandon
Susan Sarandonasal
2024-12-03 13:38:111158semak imbas

How Can I Iterate Through an Iterator in Chunks Using Python?

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!

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