Melapik Senarai Berzip ke Panjang Terpanjang
Dalam bidang pengaturcaraan Python, fungsi zip() menggabungkan berbilang iterable ke dalam senarai dengan lancar tupel. Walau bagaimanapun, panjang senarai terhasil sering dikekang oleh input terpendek. Untuk mengatasi had ini dan memasukkan senarai ke panjang input terpanjang, seseorang mungkin mencari penyelesaian alternatif.
itertools.zip_longest: The Perfect Fit
Python 3 melancarkan kuasa itertools.zip_longest, fungsi yang direka khusus untuk tujuan ini. Ia melengkapkan input yang lebih pendek dengan lancar dengan nilai Tiada, dengan berkesan memanjangkan senarai ke panjang yang boleh diulang terpanjang.
Berikut ialah contoh ilustrasi:
a = ['a1'] b = ['b1', 'b2', 'b3'] c = ['c1', 'c2'] result = list(itertools.zip_longest(a, b, c)) print(result)
Output:
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Menyesuaikan Padding Nilai
Fungsi zip_longest menawarkan fleksibiliti untuk menentukan nilai padding tersuai menggunakan parameter nilai isian. Ini membolehkan lebih kawalan ke atas mekanisme pelapik.
result = list(itertools.zip_longest(a, b, c, fillvalue='foo')) print(result)
Output:
[('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]
Python 2.x: Pendekatan Alternatif
Untuk Pengguna Python 2.x yang mencari penyelesaian yang setara, mereka boleh menggunakan itertools.izip_longest (tersedia dalam Python 2.6 ) atau gunakan peta dengan Tiada sebagai alternatif.
result = list(map(None, a, b, c)) print(result)
Output:
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Pad Senarai Berzip dalam Python untuk Memadankan Panjang Terpanjang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!