Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Cekap Memotong Senarai dalam Python?

Bagaimana untuk Cekap Memotong Senarai dalam Python?

Barbara Streisand
Lepaskan: 2024-12-22 05:16:10
asal
642 orang telah melayarinya

How to Efficiently Chunk a List in Python?

Cara Membahagikan Senarai dalam Python

Dalam Python, kita sering menghadapi situasi di mana kita perlu membahagikan senarai kepada ketulan yang lebih kecil dan bersaiz sama. Ini boleh dicapai dengan menggunakan pelbagai pendekatan, salah satunya ialah fungsi penjana chunks().

def chunks(lst, n):
    """Yield successive n-sized chunks from lst."""
    for i in range(0, len(lst), n):
        yield lst[i:i + n]
Salin selepas log masuk

Untuk menggunakan fungsi chunks(), cuma lulus senarai yang anda mahu potong sebagai hujah pertama, dan saiz ketulan yang dikehendaki sebagai hujah kedua. Fungsi itu kemudiannya akan mengembalikan penjana yang menghasilkan ketulan berturut-turut bagi saiz yang ditentukan.

Sebagai contoh, kod berikut akan memecah senarai nombor kepada ketulan 10:

>>> list(chunks(range(10, 75), 10))
[[10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
 [20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
 [30, 31, 32, 33, 34, 35, 36, 37, 38, 39],
 [40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
 [50, 51, 52, 53, 54, 55, 56, 57, 58, 59],
 [60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
 [70, 71, 72, 73, 74]]
Salin selepas log masuk

Pendekatan lain , walaupun tidak lebih baik, adalah menggunakan pemahaman senarai:

[lst[i:i + n] for i in range(0, len(lst), n)]
Salin selepas log masuk

Sama ada anda memilih untuk menggunakan fungsi chunks() atau pemahaman senarai, kedua-dua kaedah secara berkesan menggunting senarai menjadi kepingan yang sama saiz.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Memotong Senarai dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan