Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Pad Senarai Berzip dalam Python untuk Memadankan Panjang Terpanjang?

Bagaimanakah Saya Boleh Pad Senarai Berzip dalam Python untuk Memadankan Panjang Terpanjang?

Barbara Streisand
Barbara Streisandasal
2024-11-28 07:30:13641semak imbas

How Can I Pad Zipped Lists in Python to Match the Longest Length?

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!

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