Comment utiliser la fonction zip() de Python pour combiner des données

La fonction zip() de Python est un outil puissant permettant de combiner des itérables (tels que des listes ou des tuples) en un seul itérable. Cette fonction peut être particulièrement utile lorsque vous devez associer des éléments de plusieurs séquences. Dans cet article, nous allons découvrir comment utiliser zip() pour combiner efficacement des données.

Qu'est-ce que la fonction zip() ?

La fonction zip() prend plusieurs itérables comme arguments et renvoie un itérateur de tuples. Chaque tuple contient des éléments de la position correspondante des itérables d'entrée. Cela est utile pour combiner des données à partir de séquences parallèles.

Utilisation de base

Voici un exemple simple de la façon d'utiliser zip() pour combiner deux listes:

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

zipped = zip(list1, list2)
print(list(zipped))

Sortir:

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

Dans cet exemple, list1 et list2 sont combinés élément par élément, créant une liste de tuples.

Gestion des itérables de différentes longueurs

Si les itérables d'entrée ont des longueurs différentes, zip() arrête de créer des tuples lorsque l'itérable le plus court est épuisé. Voici un exemple:

list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c']

zipped = zip(list1, list2)
print(list(zipped))

Sortir:

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

Notez que le tuple contenant '4' n'est pas inclus car list2 n'a pas d'élément correspondant.

Décompression des données

Vous pouvez également utiliser zip() pour décompresser une liste de tuples. Cela implique de séparer les données combinées en listes individuelles:

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

list1, list2 = zip(*zipped)
print(list1)
print(list2)

Sortir:

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

Ici, l'opérateur * est utilisé pour décompresser la liste des tuples, et zip() est utilisé pour regrouper les éléments correspondants dans des tuples séparés.

Applications pratiques

La fonction zip() est souvent utilisée dans des scénarios pratiques tels que:

  • Combinaison de données provenant de listes parallèles, par exemple des noms et des âges.
  • Création de dictionnaires à partir de deux listes, où une liste contient des clés et l'autre des valeurs.
  • Itérer sur plusieurs listes en parallèle dans une boucle.

Exemple: création d'un dictionnaire

Voici un exemple d'utilisation de zip() pour créer un dictionnaire à partir de deux listes:

keys = ['name', 'age', 'city']
values = ['Alice', 30, 'New York']

dictionary = dict(zip(keys, values))
print(dictionary)

Sortir:

{'name': 'Alice', 'age': 30, 'city': 'New York'}

Dans cet exemple, zip() associe chaque clé à sa valeur correspondante, et la fonction dict() convertit les paires en un dictionnaire.

Conclusion

La fonction zip() est un outil polyvalent permettant de combiner et de gérer des données en Python. Que vous fusionniez des listes, décompressiez des données ou créiez des dictionnaires, comprendre comment utiliser efficacement zip() peut simplifier votre code et améliorer vos compétences en programmation.