Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Memanjangkan Fungsi zip() Python untuk Mengendalikan Iterables yang Tidak Sama Panjang?

Bagaimanakah Saya Boleh Memanjangkan Fungsi zip() Python untuk Mengendalikan Iterables yang Tidak Sama Panjang?

Linda Hamilton
Lepaskan: 2024-11-27 17:56:13
asal
442 orang telah melayarinya

How Can I Extend Python's zip() Function to Handle Iterables of Unequal Lengths?

Melanjutkan Kefungsian zip(): Mengalas ke Panjang Terpanjang

Fungsi zip() terbina dalam Python menggandingkan elemen daripada berbilang leterable, tetapi ia memotong keputusan kepada panjang yang boleh diulang terpendek. Jika anda memerlukan zip yang lebih komprehensif yang berlapik dengan nilai Tiada untuk diselaraskan dengan input terpanjang, pertimbangkan penyelesaian berikut:

Python 3: itertools.zip_longest

Dalam Python 3, itertools menyediakan fungsi zip_longest(). Ia mengembangkan senarai hasil untuk memadankan panjang input terpanjang.

import itertools
a = ['a1']
b = ['b1', 'b2', 'b3']
c = ['c1', 'c2']

list(itertools.zip_longest(a, b, c))
# [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Salin selepas log masuk

Anda boleh menentukan nilai isian tersuai menggunakan parameter isian:

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

Python 2: itertools.izip_longest atau peta Tiada

Dalam Python 2, anda boleh menggunakan itertools.izip_longest (diperkenalkan dalam Python 2.6) atau gunakan peta dengan Tiada.

from itertools import izip_longest
a = ['a1']
b = ['b1', 'b2', 'b3']
c = ['c1', 'c2']

list(izip_longest(a, b, c))
# [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]

map(None, a, b, c)
# [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanjangkan Fungsi zip() Python untuk Mengendalikan Iterables yang Tidak Sama Panjang?. 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