zip()

Associe plusieurs collections en paires (ou tuples) d’éléments qui se correspondent.

Renvoie
Un itérateur de tuples.
Sur cette page

Exemple

#
Python
names = ["Léa", "Hugo", "Emma"]
scores = [92, 78, 85]

for name, score in zip(names, scores):
    print(f"{name}: {score}")

print(dict(zip(names, scores)))
Résultatrésultat enregistré, vous pouvez le vérifier
Léa: 92
Hugo: 78
Emma: 85
{'Léa': 92, 'Hugo': 78, 'Emma': 85}

Définition et utilisation

#

La fonction zip() parcourt plusieurs collections en parallèle et renvoie des tuples d’éléments situés aux mêmes positions : le premier tuple contient les premiers éléments, le second les deuxièmes, et ainsi de suite.

Par défaut, elle s’arrête à la collection la plus courte, et les éléments excédentaires des plus longues sont ignorés. Depuis Python 3.10, le paramètre strict=True lève une erreur quand les longueurs diffèrent.

Les usages typiques sont une boucle sur deux listes à la fois, la construction d’un dictionnaire avec dict(zip(keys, values)), et la « transposition » d’une liste de paires avec zip(*pairs).

Syntaxe

#
Syntaxe
zip(*iterables, strict=False)

Paramètres

#
  • *iterables

    des collections

    Les collections à associer.
  • strict

    bool, par défaut False

    Quand True, des longueurs différentes lèvent une ValueError.

Plus d’exemples

#
Longueurs différentes et transposition de paires
Python
print(list(zip([1, 2, 3], ["a", "b"])))

pairs = [("html", 11), ("css", 9)]
courses, modules = zip(*pairs)
print(courses, modules)
Résultatrésultat enregistré, vous pouvez le vérifier
[(1, 'a'), (2, 'b')]
('html', 'css') (11, 9)

Bonnes pratiques

#
  • Quand les listes devraient avoir la même longueur, utilisez zip(..., strict=True) pour détecter les erreurs dans les données.
  • Pour parcourir entièrement des listes de longueurs différentes, utilisez itertools.zip_longest().

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.