Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh meninggalkan Senarai dalam Python menggunakan Zip dan Pemahaman Senarai?

Bagaimanakah saya boleh meninggalkan Senarai dalam Python menggunakan Zip dan Pemahaman Senarai?

DDD
DDDasal
2024-11-15 21:06:03153semak imbas

How can I Interleave Lists in Python using Zip and List Comprehension?

Menggunakan Pemahaman Zip dan Senarai untuk Senarai Selang Selang

Selang selang senarai yang sama panjang dalam Python ialah tugas biasa. Memandangkan dua senarai [1,2,3] dan [10,20,30], matlamatnya adalah untuk mengubahnya menjadi [1,10,2,20,3,30].

Penyelesaian Menggunakan Zip dan Pemahaman Senarai:

Pendekatan ringkas untuk menyelang senarai adalah dengan menggunakan fungsi zip dan pemahaman senarai. Kod berikut menyelesaikan tugas:

[val for pair in zip(l1, l2) for val in pair]

Dalam kod ini:

  • zip(l1, l2) melelaran pada pasangan elemen daripada dua senarai input.
  • Kefahaman senarai luar ([val untuk pasangan dalam zip(l1, l2)]) mencipta senarai baharu untuk setiap berpasangan.
  • Kefahaman senarai dalam ([val untuk val dalam pasangan]) mencipta senarai baharu untuk setiap pasangan nilai.

Sambungan untuk Menyilang Berbilang Senarai:

Jika terdapat berbilang senarai untuk dicelah (senarai N), konsep yang sama boleh dilanjutkan menggunakan operator * dalam zip:

lists = [l1, l2, ...]
[val for tup in zip(*lists) for val in tup]

Dalam kod ini:

  • zip(*senarai) berulang pada tuple elemen yang sepadan daripada semua senarai input.
  • Pemahaman senarai luar ([val for tup in zip(*lists)]) mencipta senarai baharu untuk setiap tuple.
  • Kefahaman senarai dalaman ([val for val in tup]) mencipta senarai baharu untuk setiap tuple nilai.

Atas ialah kandungan terperinci Bagaimanakah saya boleh meninggalkan Senarai dalam Python menggunakan Zip dan Pemahaman Senarai?. 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