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

Bagaimana untuk Cekap Memotong Senarai dalam Python?

Barbara Streisand
Barbara Streisandasal
2024-12-22 05:16:10603semak imbas

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]

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

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

[lst[i:i + n] for i in range(0, len(lst), n)]

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!

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