Python Language Zipper deux itérateurs jusqu'à ce qu'ils soient tous deux épuisés


Exemple

Semblable à la fonction intégrée zip() , itertools.zip_longest continuera à itérer au-delà de la plus courte des deux itérables.

from itertools import zip_longest
a = [i for i in range(5)] # Length is 5
b = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] # Length is 7
for i in zip_longest(a, b):
    x, y = i  # Note that zip longest returns the values as a tuple
    print(x, y)

Un argument facultatif fillvalue peut être passé (par défaut à '' ) comme ceci:

for i in zip_longest(a, b, fillvalue='Hogwash!'):
    x, y = i  # Note that zip longest returns the values as a tuple
    print(x, y)

Dans Python 2.6 et 2.7, cette fonction s'appelle itertools.izip_longest .