Ce face itertools.zip_longest()
zip() se oprește la cea mai scurtă colecție. zip_longest() continuă până se termină și cea mai lungă, punând fillvalue (implicit None) în locul elementelor lipsă.
Parametri
| Parametru | Descriere |
|---|---|
*iterabile |
Colecțiile parcurse în paralel. |
fillvalue |
Opțional. Valoarea pentru golurile. |
Ce returnează
Un iterator de tupluri.
Exemple
Exemplul 1: Liste de lungimi diferite
from itertools import zip_longest
nume = ["Ana", "Dan", "Ioana"]
note = [9, 7]
print(list(zip(nume, note)))
print(list(zip_longest(nume, note)))
for n, nota in zip_longest(nume, note, fillvalue="absent"):
print(n, nota)
Rezultat
[('Ana', 9), ('Dan', 7)]
[('Ana', 9), ('Dan', 7), ('Ioana', None)]
Ana 9
Dan 7
Ioana absent
Greșeli frecvente
- Dai
fillvalueca argument pozițional:zip_longest(a, b, 0)tratează0ca a treia colecție și dăTypeError. Scriefillvalue=0.
Comenzi înrudite
zip(): Parcurge mai multe colecții în paralel și le grupează element cu element.itertools.pairwise(): Produce perechile de elemente vecine: (a, b), (b, c), (c, d)…