Comment utiliser la fonction Zip en Python

How Use Zip Function Python



Cet article couvrira un guide sur la fonction zip disponible dans la bibliothèque de modules standard de Python. Cette méthode vous permet de combiner et d'associer des éléments de plusieurs objets itérables. Vous pouvez ensuite exécuter une logique supplémentaire sur ces paires. Dans de nombreux cas, l'utilisation d'une fonction zip est beaucoup plus efficace et plus propre que l'utilisation de plusieurs boucles for imbriquées.

À propos de la fonction Zip

Comme indiqué précédemment, la fonction zip est utilisée pour créer des paires à partir d'éléments de plusieurs objets itérables. Considérez l'exemple ci-dessous pour comprendre la syntaxe de base et l'utilisation de la fonction zip :







liste1= ['à', 'b', 'c']
liste2= ['Pomme', 'Balle', 'chat']
zippé= Zip *: français(liste1,liste2)
imprimer (liste(zippé))

Les deux premières instructions de l'exemple de code ci-dessus définissent deux listes contenant certains éléments. Ensuite, la fonction zip est utilisée en passant les variables list1 et list2 comme arguments. C'est la syntaxe principale de la fonction zip. Vous n'avez qu'à passer des listes ou d'autres itérables ordonnés valides comme arguments dont vous souhaitez combiner les éléments. Enfin, l'instruction print est utilisée pour obtenir la sortie de la variable zippée. Après avoir exécuté l'exemple de code mentionné ci-dessus, vous devriez obtenir la sortie suivante :



[('a', 'apple'), ('b', 'ball'), ('c', 'cat')]

Notez que la fonction zip renvoie un objet de type zip et non une liste. Vous devez le convertir en un type itérable, comme indiqué dans l'instruction print ci-dessus.



En termes simples, la fonction zip récupère les éléments du même index dans deux listes et les combine en une paire dans un tuple. Ainsi, le 0ème élément de list1 est combiné avec le 0ème élément de list2, le 1er élément de list1 est combiné avec le 1er élément de list2 et ainsi de suite. La fonction Zip se déplace de gauche à droite et le tuple contenant des éléments appariés a le même index que les éléments qui y sont stockés.





Utiliser Zip lorsque les itérables n'ont pas le même nombre d'éléments

Dans l'exemple indiqué ci-dessus, les deux listes ont le même nombre d'éléments. Dans le cas où vous avez affaire à un code où les deux listes n'ont pas le même nombre d'éléments, la fonction zip s'arrêtera au dernier élément de la liste ayant le plus petit nombre d'éléments.

Dans l'exemple ci-dessous, la fonction zip s'arrêtera à l'élément c, indépendamment du fait que list2 ait un élément de plus.



liste1= ['à', 'b', 'c']
liste2= ['Pomme', 'Balle', 'chat', 'poupée']
zippé= Zip *: français(liste1,liste2)
imprimer (liste(zippé))

Après avoir exécuté l'exemple de code mentionné ci-dessus, vous devriez obtenir le résultat suivant :

[('a', 'apple'), ('b', 'ball'), ('c', 'cat')]

Vous pouvez utiliser plus de deux itérables lors de l'utilisation de la fonction Zip

Habituellement, la fonction zip est utilisée pour comparer deux objets itérables. Cependant, vous pouvez transmettre n'importe quel nombre d'itérables en tant qu'arguments à la fonction zip. Le principe de s'arrêter au dernier élément de la liste la plus courte sera toujours d'application.

liste1= ['à', 'b', 'c']
liste2= ['Pomme', 'Balle', 'chat', 'poupée']
liste3= ['5', '3']
zippé= Zip *: français(liste1,liste2,liste3)
imprimer (liste(zippé))

Après avoir exécuté l'exemple de code mentionné ci-dessus, vous devriez obtenir le résultat suivant :

[('a', 'pomme', '5'), ('b', 'boule', '3')]

Création de listes individuelles à partir d'un objet de type zip

Si vous disposez déjà d'un objet zip, vous pouvez l'utiliser pour remplir des listes individuelles précédemment utilisées lorsque la fonction zip a été appelée pour la première fois.

liste1= ['à', 'b', 'c']
liste2= ['Pomme', 'Balle', 'chat', 'poupée']
liste3= ['5', '3']
zippé= Zip *: français(liste1,liste2,liste3)
l1,l2,l3= Zip *: français(* zippé)
imprimer (liste(l1), liste(l2), liste(l3))

Après avoir exécuté l'exemple de code mentionné ci-dessus, vous devriez obtenir le résultat suivant :

['a', 'b'] ['apple', 'ball'] ['5', '3']

Dans l'exemple de code ci-dessus, l'objet zip est dégonflé à l'aide de l'opérateur *. Les résultats dégonflés sont ensuite introduits dans un autre appel à la fonction zip qui crée des listes originales. Notez que vous ne pouvez pas récupérer tous les éléments dans les listes d'origine si des listes de longueur inégale ont été utilisées lors de la première création de l'objet zip.

Utilisation de Zip lorsque vous souhaitez conserver les éléments du plus long itérable

Dans plusieurs exemples ci-dessus, vous avez peut-être observé que la fonction zip s'arrête par défaut au dernier élément de l'itérable le plus court. Et si vous voulez qu'il continue à itérer jusqu'à ce qu'il atteigne le dernier élément du plus long itérable ?

Dans un tel cas, vous devrez utiliser la méthode zip_longest() du module itertools de Python. Elle fonctionne de la même manière que la fonction zip, à une petite différence près qu'elle s'arrête au dernier élément du type itérable le plus long.

de itertools importerzip_longest
liste1= ['à', 'b', 'c']
liste2= ['Pomme', 'Balle', 'chat', 'poupée']
liste3= ['5', '3']
zippé=zip_longest(liste1,liste2,liste3)
imprimer (liste(zippé))

Après avoir exécuté l'exemple de code mentionné ci-dessus, vous devriez obtenir le résultat suivant :

[('a', 'apple', '5'), ('b', 'ball', '3'), ('c', 'cat', Aucun), (Aucun, 'poupée', Aucun) ]

Les valeurs manquantes sont renseignées en tant qu'objets de type Aucun. Vous pouvez également fournir votre propre valeur à remplir en passant un argument fillvalue supplémentaire à la méthode zip_longest.

de itertools importerzip_longest
liste1= ['à', 'b', 'c']
liste2= ['Pomme', 'Balle', 'chat', 'poupée']
liste3= ['5', '3']
zippé=zip_longest(liste1,liste2,liste3,valeur de remplissage='my_value')
imprimer (liste(zippé))

Après avoir exécuté l'exemple de code mentionné ci-dessus, vous devriez obtenir le résultat suivant :

[('a', 'apple', '5'), ('b', 'ball', '3'), ('c', 'cat', 'my_value'), ('my_value', 'doll ', 'ma_valeur')]

Conclusion

La fonction Zip peut être émulée à l'aide de certaines boucles et instructions de conditions. Cependant, cela aide à garder le code organisé et plus propre en supprimant la verbosité inutile et les instructions répétitives.