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
DDDasal
2024-11-24 22:26:15726semak imbas

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

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!

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