← retour aux snippets

itertools.zip_longest: zipper avec remplissage

Zipper des séquences de longueurs différentes avec une valeur de remplissage.

python itertools #itertools#align

objectif

Zipper des séquences de longueurs différentes avec une valeur de remplissage.

code minimal

from itertools import zip_longest
a = [1,2,3]; b = ["x","y"]
pairs = list(zip_longest(a, b, fillvalue=None))
print(pairs[-1] == (3, None))  # attendu: True

utilisation

from itertools import zip_longest
left = ["a","b"]; right = [10]
rows = list(zip_longest(left, right, fillvalue=""))
print(rows == [("a",10), ("b","")])

variante(s) utile(s)

from itertools import zip_longest
print(len(list(zip_longest([], [], fillvalue=None))) == 0)

notes

  • Pratique pour aligner des colonnes ou exporter des tableaux irréguliers.
  • Pensez à fillvalue pour éviter les None non souhaités.