Python

Comment utiliser la fonction Zip en Python

Comment utiliser la fonction Zip en 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 = ["a", "b", "c"]
list2 = ["pomme", "boule", "chat"]
zippé = zip(liste1, liste2)
imprimer (liste (zippée))

Les deux premières instructions de l'exemple de code ci-dessus définissent deux listes contenant des é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 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 le résultat suivant :

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

A noter 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.

Utilisation de 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 à du 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 = ["a", "b", "c"]
list2 = ["pomme", "boule", "chat", "poupée"]
zippé = zip(liste1, liste2)
imprimer (liste (zippée))

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 passer n'importe quel nombre d'itérables comme 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 = ["a", "b", "c"]
list2 = ["pomme", "boule", "chat", "poupée"]
liste3 = ["5", "3"]
zippé = zip(liste1, liste2, liste3)
imprimer (liste (zippée))

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 = ["a", "b", "c"]
list2 = ["pomme", "boule", "chat", "poupée"]
liste3 = ["5", "3"]
zippé = zip(liste1, liste2, liste3)
l1, l2, l3 = zip(*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. Cela fonctionne de la même manière que la fonction "zip", avec une petite différence qu'elle s'arrête au dernier élément du type itérable le plus long.

depuis itertools importer zip_longest
liste1 = ["a", "b", "c"]
list2 = ["pomme", "boule", "chat", "poupée"]
liste3 = ["5", "3"]
zippé = zip_longest(list1, list2, list3)
imprimer (liste (zippée))

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".

depuis itertools importer zip_longest
liste1 = ["a", "b", "c"]
list2 = ["pomme", "boule", "chat", "poupée"]
liste3 = ["5", "3"]
zippé = zip_longest(list1, list2, list3, fillvalue="my_value")
imprimer (liste (zippée))

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 déclarations de conditions. Cependant, cela aide à garder le code organisé et plus propre en supprimant la verbosité inutile et les instructions répétitives.

Comment installer League Of Legends sur Ubuntu 14.04
Si vous êtes fan de League of Legends, alors c'est l'occasion pour vous de tester League of Legends. Notez que LOL est pris en charge sur PlayOnLinux ...
Installez le dernier jeu de stratégie OpenRA sur Ubuntu Linux
OpenRA est un moteur de jeu de stratégie en temps réel libre/gratuit qui recrée les premiers jeux Westwood comme le classique Command & Conquer: Red A...
Installez le dernier émulateur Dolphin pour Gamecube et Wii sur Linux
L'émulateur Dolphin vous permet de jouer aux jeux Gamecube et Wii de votre choix sur des ordinateurs personnels Linux (PC). Étant un émulateur de jeu...