Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengulangi Senarai dalam Ketulan Menggunakan Python dengan Cekap?

Bagaimanakah Saya Boleh Mengulangi Senarai dalam Ketulan Menggunakan Python dengan Cekap?

Patricia Arquette
Patricia Arquetteasal
2024-12-20 00:18:08919semak imbas

How Can I Efficiently Iterate Over a List in Chunks Using Python?

Menyalakan Senarai dalam Ketulan: Perspektif Pythonic

Dalam Python, tugas untuk mengulang senarai dalam ketulan boleh dicapai dalam pelbagai cara. Satu pendekatan biasa melibatkan penggunaan gelung untuk mengakses elemen secara berperingkat pada selang waktu tertentu:

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]

Kaedah ini, walaupun berfungsi, boleh memperkenalkan kerumitan yang tidak perlu dan "C-think" ke dalam kod Python anda. Pendekatan yang lebih Pythonic melibatkan memanfaatkan fungsi julat() terbina dalam dan menghiris:

def chunker(seq, size):
    return (seq[pos:pos + size] for pos in range(0, len(seq), size))

Fungsi chunker mencipta ungkapan penjana yang melelaran melalui jujukan, menghasilkan ketulan saiz yang dikehendaki bermula dari pelbagai kedudukan. Ia sangat cekap dan menghapuskan keperluan untuk gelung eksplisit dan manipulasi indeks.

Sebagai contoh, pertimbangkan kod berikut:

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'

Di sini, fungsi chunker membahagikan teks kepada kumpulan tujuh aksara, menghasilkan tuple urutan aksara.

Begitu juga, anda boleh menggunakan fungsi chunker untuk memproses jujukan apa-apa jenis, seperti senarai haiwan:

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']

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengulangi Senarai dalam Ketulan Menggunakan Python dengan Cekap?. 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