Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Pad Keputusan Python\'s zip() ke Panjang Input Terpanjang?

Bagaimana untuk Pad Keputusan Python\'s zip() ke Panjang Input Terpanjang?

Susan Sarandon
Lepaskan: 2024-11-28 21:05:11
asal
747 orang telah melayarinya

How to Pad the Results of Python's zip() to the Length of the Longest Input?

Cara Zip dan Pad ke Panjang Terpanjang dalam Python

Dalam Python, fungsi zip() digunakan untuk menggabungkan elemen daripada dua atau lebih banyak objek yang boleh diubah. Walau bagaimanapun, zip() hanya mempertimbangkan panjang input terpendek. Bagaimana jika anda ingin memasukkan hasil ke panjang input terpanjang?

itertools.zip_longest

Dalam Python 3, fungsi itertools.zip_longest() menyediakan ini kefungsian. Ia memerlukan berbilang iterables dan mengembalikan iterator yang menghasilkan tupel yang mengandungi elemen daripada iterables, dengan Tiada nilai yang mengalas iterables yang lebih pendek.

import itertools

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

fillvalue Parameter

Anda boleh tentukan parameter isian untuk digunakan dan bukannya Tiada untuk padding.

result = list(itertools.zip_longest(a, b, c, fillvalue='foo'))
print(result)
# Output: [('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]
Salin selepas log masuk

Alternatif Python 2

Untuk Python 2, anda mempunyai dua pilihan:

  1. peta(Tiada , ...): Ciri peta khusus Python 2 ini boleh mencapai hasil yang sama seperti zip_longest().
result = map(None, a, b, c)
print(list(result))
# Output: [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Salin selepas log masuk
  1. itertools.izip_longest: Fungsi ini diperkenalkan dalam Python 2.6 dan menyediakan fungsi yang sama seperti zip_longest().
from itertools import izip_longest

result = list(izip_longest(a, b, c))
print(result)
# Output: [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Pad Keputusan Python\'s zip() ke Panjang Input 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