Bagaimana untuk Memisahkan Senarai menjadi Potongan Sama Menggunakan zip(*[iter(s)]*n) dalam Python?

Mary-Kate Olsen
Lepaskan: 2024-11-20 13:03:21
asal
389 orang telah melayarinya

How to Split a List into Equal Chunks Using zip(*[iter(s)]*n) in Python?

Zip Iterables ke dalam Ketulan dalam Python

Dalam Python, zip([iter(s)]n) fungsi membolehkan anda membahagikan senarai kepada ketulan yang sama panjang. Begini cara ia berfungsi:

Penjelasan:

  1. iter(s): Ini mencipta iterator atas senarai input s.
  2. [ iter(s)]*n: Ini mencipta senarai n iterator, setiap satu melelaran ke atas senarai yang sama s.
  3. zip(*[iter(s)]*n):

    • * membongkar senarai iterator ke dalam argumen individu untuk fungsi zip().
    • zip() mengambil jujukan iterator dan menggabungkan elemen mereka ke dalam tupel.

Setara Kod Verbose:

Untuk memahami kerja dalaman zip(*[iter(s)]*n ), mari kita tulis kod yang setara dengan lebih banyak perkataan sintaks:

s = [1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 3

# Create iterators for the list
iter1 = iter(s)
iter2 = iter(s)
iter3 = iter(s)

# Zip the iterators to create chunks
chunks = zip(iter1, iter2, iter3)

# Convert the generator to a list
list_chunks = list(chunks)
Salin selepas log masuk

Dalam versi verbose ini:

  1. Kami mencipta tiga iterator untuk senarai s yang sama.
  2. Kami menghantar iterator ini ke zip() menggunakan membongkar.
  3. Ungkapan penjana yang terhasil ditukar kepada senarai untuk menghasilkan ketulan.

Output:

Output kedua-dua kod asal dan verbose adalah sama:

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
Salin selepas log masuk

Ini menunjukkan bagaimana zip(*[iter(s)]*n) membahagikan senarai menjadi beberapa bahagian dengan mudah dengan menggunakan iterator dan zip fungsi.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Senarai menjadi Potongan Sama Menggunakan zip(*[iter(s)]*n) 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