Bagaimana untuk Interleave Senarai Equilength Berbilang dalam Python?

Barbara Streisand
Lepaskan: 2024-11-14 18:51:02
asal
748 orang telah melayarinya

How to Interleave Multiple Equilength Lists in Python?

Menyambung Berbilang Senarai Kesetaraan dalam Python: Pendekatan Pythonic

Dalam Python, tugas untuk menjalin berbilang senarai dengan panjang yang sama sering timbul. Operasi ini melibatkan menyelang-seli elemen daripada senarai input untuk menghasilkan senarai baharu.

Pernyataan Masalah:

Memandangkan dua atau lebih senarai yang sama panjang, cari cara Pythonic untuk menyelitkan elemen mereka ke dalam satu senarai, mengekalkan susunan elemen asal.

Penyelesaian:

Menggunakan fungsi zip() yang berkuasa dan pemahaman senarai, kita boleh mencapai interleaving yang dikehendaki dengan cara ringkas dan elegan.

Untuk dua senarai, l1 dan l2, coretan kod berikut menunjukkan proses interleaving:

[val for pair in zip(l1, l2) for val in pair]
Salin selepas log masuk

Kod ini menggunakan fungsi zip() untuk cipta pasangan unsur yang sepadan daripada l1 dan l2. Kemudian, ia mengulangi setiap pasangan dan membongkar elemennya (val) ke dalam pemahaman senarai.

Contoh:

l1 = [1, 2, 3]
l2 = [10, 20, 30]

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

print(interleaved_list)  # [1, 10, 2, 20, 3, 30]
Salin selepas log masuk

Mengerti untuk Senarai N:

Teknik yang sama boleh digeneralisasikan untuk menyilangkan nombor arbitrari senarai:

lists = [l1, l2, ..., ln]
[val for tup in zip(*lists) for val in tup]
Salin selepas log masuk

Kod ini menggunakan operator * untuk membongkar senarai ke dalam argumen berasingan untuk zip(), mencipta tupel elemen yang sepadan daripada semua senarai input. Pemahaman senarai berulang pada setiap tuple dan mengekstrak elemennya untuk membina senarai bersilang.

Atas ialah kandungan terperinci Bagaimana untuk Interleave Senarai Equilength Berbilang 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