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
Lepaskan: 2024-11-28 07:30:13
asal
588 orang telah melayarinya

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)
Salin selepas log masuk

Output:

[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Salin selepas log masuk
Salin selepas log masuk

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)
Salin selepas log masuk

Output:

[('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]
Salin selepas log masuk

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)
Salin selepas log masuk

Output:

[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Salin selepas log masuk
Salin selepas log masuk

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!

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