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]
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]
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]
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!