zip()
Associe plusieurs collections en paires (ou tuples) d’éléments qui se correspondent.
- Renvoie
- Un itérateur de tuples.
Exemple
#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)))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
#zip(*iterables, strict=False)Paramètres
#*iterables
des collections
Les collections à associer.strict
bool, par défaut False
QuandTrue, des longueurs différentes lèvent uneValueError.
Plus d’exemples
#print(list(zip([1, 2, 3], ["a", "b"])))
pairs = [("html", 11), ("css", 9)]
courses, modules = zip(*pairs)
print(courses, modules)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.