Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah `zip([iter(s)]*n)` Membahagikan Senarai dalam Python?

Bagaimanakah `zip([iter(s)]*n)` Membahagikan Senarai dalam Python?

DDD
Lepaskan: 2024-11-24 22:26:15
asal
708 orang telah melayarinya

How does `zip([iter(s)]*n)` Chunk a List in Python?

Zip untuk Senarai Chunking: Memahami zip([iter(s)]n)

Zip() function ialah alat berkuasa dalam Python yang menggabungkan elemen daripada berbilang iterable ke dalam senarai tupel. Kegunaannya meluas kepada pelbagai aplikasi, termasuk pembahagian senarai kepada ketulan yang sama saiz. Ungkapan zip([iter(s)]n) ialah cara ringkas untuk mencapainya.

Untuk memahami cara ungkapan ini berfungsi, mari kita pecahkan kepada komponennya:

  • iter(s): Ini mencipta iterator atas senarai s, membolehkan kami melangkah melalui elemennya satu oleh satu.
  • [iter(s)]*n: Baris ini mencipta senarai n salinan lelaran, dengan berkesan memberikan n paparan ke dalam senarai yang sama.
  • *: Operator asterisk (atau percikan) membongkar senarai iterator ke dalam argumen individu untuk zip().

Akibatnya, zip() digunakan dengan n iterator, setiap satu mewakili senarai yang sama. Ini menyebabkan zip() menarik satu elemen daripada setiap iterator, mencipta tuple. Proses ini berterusan sehingga semua iterator habis, menghasilkan senarai tupel.

Untuk menggambarkan, mari kita pertimbangkan contoh dengan senarai s = [1,2,3,4,5,6,7,8 ,9] dan n = 3. Ungkapan zip([iter(s)]n) akan menghasilkan [(1,2,3),(4,5,6),(7,8,9)].

Jika kita mengembangkan ungkapan kepada lebih banyak kod bertele-tele, ia akan kelihatan seperti ini:

x = iter(s)
y = iter(s)
z = iter(s)
chunked_list = list(zip(x, y, z))
Salin selepas log masuk

Kod ini menghasilkan hasil yang sama seperti zip ungkapan ringkas([iter(s)]n). Pada dasarnya, iter() mencipta iterator, [iter(s)]*n menjana berbilang paparan ke dalam senarai yang sama dan operator splat membongkar iterator, membolehkan zip() menggabungkan elemen daripada setiap satu menjadi tupel.

Atas ialah kandungan terperinci Bagaimanakah `zip([iter(s)]*n)` Membahagikan 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan