La fonction zip en Python

Article publié le et mis à jour le .

La fonction zip en Python

La fonction zip permet de regrouper plusieurs itérables en un seul. On l’utilise souvent quand on veut parcourir plusieurs iterables en une seul fois dans une boucle for par exemple. Ou bien pour regrouper plusieurs sequences en une liste de tuples.

Syntaxe de la fonction zip :

a = [1, 2, 3]
b = ['a', 'b', 'c']

print(list(zip(a, b)))

Ce qui donnera :

[(1, 'a'), (2, 'b'), (3, 'c')]

Explications video de la fonction zip en moins d’une minute.

Voyons plus en details comment fonctionne zip en Python.

Comment utiliser la fonction zip ?

Disons qu’on ait trois listes de même taille qui contiennent des informations sur des élèves :

  • la première liste contient leur prénom
  • la deuxième liste contient leur date de naissance
  • et la troisième liste contient la moyenne de leur note
prenoms = ["Alice", "Bob", "Charlie"]
dates_naissance = ["01/01/2000", "15/03/1999", "22/07/2001"]
moyennes = [16.5, 14.2, 18.0]

on voudrait avoir un seul objet qui regroupe pour chaque élève son prénom sa date de naissance et sa moyenne

pour ça on peut utiliser la fonction zip qui prend des itérables en paramètres et qui renvoie un objet de type zip qu’on peut ensuite transformer en itérable lui-même

on va donc faire zip et lui passer nos trois listes prénom date de naissance et moyenne des notes.

donnees_eleves = zip(prenoms, dates_naissance, moyennes)

Mais quand on affiche donnees_eleves avec la fonction print, on a un objet de type zip qui ressemble a <zip object at 0x123abc666>

Pour le rendre lisible par les humains, on peut transformer le résultat de la fonction zip en liste avec la fonction list().

donnees_eleves = list(zip(prenoms, dates_naissance, moyennes))

Et puis on va afficher cette liste en utilisant la fonction print

print(donnes_eleves)

En lançant notre programme on voit qu’on a bien une liste avec un tuple par élève qui contient ces trois attributs.

[('Alice', '01/01/2000', 16.5), ('Bob', '15/03/1999', 14.2), ('Charlie', '22/07/2001', 18.0)]

Utilisez la fonction zip dans vos programmes !

Et voila, vous savez maintenant quand et comment utiliser la fonction zip en Python !

La fonction zip en Python est un pratique pour manipuler plusieurs itérables en meme temps.

Mieux comprendre la fonction zip fera de vous un meilleur dev python !