Iterators Mengulang dengan Cekap dalam Python Menggunakan Ketulan
Apabila bekerja dengan set data yang besar, adalah perlu untuk memproses data dalam kelompok atau ketulan yang lebih kecil. Ini membantu mengurus penggunaan memori dan meningkatkan prestasi. Satu cara untuk mencapai matlamat ini ialah menggunakan iterator Python untuk membahagikan data kepada ketulan saiz yang dikehendaki.
Resipi Kerapu
Dalam dokumentasi itertools, kerapu() resipi menyediakan cara mudah untuk mengumpulkan data ke dalam ketulan tetap panjang. Walau bagaimanapun, ia mungkin tidak mengendalikan ketulan yang tidak lengkap seperti yang dikehendaki.
Resipi Berkelompok
Tambahan yang lebih terkini pada resipi itertools ialah fungsi batched(). Ia cemerlang dalam mengumpulkan data ke dalam tupel dengan panjang tertentu. Tidak seperti kerapu(), batched() secara eksplisit mengendalikan ketulan yang tidak lengkap, mengembalikan kumpulan yang lebih pendek tanpa pengecualian atau nilai isian.
Penyelesaian Khusus Urutan
Jika anda sedang bekerja semata-mata dengan urutan, anda boleh menggunakan yang lebih mudah pendekatan:
(my_list[i:i + chunk_size] for i in range(0, len(my_list), chunk_size))
Penyelesaian ini mengekalkan jenis jujukan asal dan mengendalikan bahagian terakhir dengan anggun.
Python 3.12 dan itertools.batched
Dalam Python 3.12 dan ke atas, itertools.batched boleh digunakan secara langsung. Ia menyediakan fungsi yang sama seperti resipi batched():
itertools.batched(iterable, n) # Batch data into tuples of length n
Kesimpulan
Memilih kaedah yang sesuai bergantung pada keperluan khusus anda dan versi Python yang anda gunakan menggunakan. Untuk batching umum dan fleksibel, resipi batched() atau itertools.batched Python 3.12 disyorkan. Untuk tugasan khusus jujukan, penyelesaian berasaskan jujukan menawarkan kesederhanaan dan pemeliharaan jenis.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengulang Dengan Cekap Melalui Set Data Besar dalam Python Menggunakan Potongan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!