Fonction zip() de Python
Description
zip()La fonction prend des objets itérables comme paramètres, regroupe les éléments correspondants des objets dans des tuples un par un, puis renvoie une liste composée de ces tuples.
Si le nombre d'éléments dans chaque itérateur est incohérent, la longueur de la liste renvoyée est la même que celle de l'objet le plus court. En utilisant l'opérateur *, les tuples peuvent être dépaquetés en listes.
La différence entre la méthode zip dans Python 2 et Python 3 : dans Python 3.x, pour réduire l'utilisation de la mémoire, zip() renvoie un objet. Pour afficher une liste, vous devez la convertir manuellement avec list().
Si vous avez besoin de comprendre l'utilisation de Python 3, vous pouvez vous référer àPython3 zip()。
Syntaxe
Syntaxe de zip :
zip([iterable, ...])
Description du paramètre :
- iterable -- un ou plusieurs itérateurs ;
Valeur de retour
Renvoie une liste de tuples.
Exemples
Les deux exemples suivants montrent respectivementPython2.xetPython3.x zipl'utilisation :
Exemple (Python 2.0+)
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # Empaqueter dans une liste de tuples
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c) # Le nombre d'éléments est le même que celui de la liste la plus courte
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped) # Contrairement à zip, *zipped peut être compris comme un dépaquetage, renvoyant un format de matrice bidimensionnelle
[(1, 2, 3), (4, 5, 6)]
Exemple (Python 3.0+)
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # Renvoie un objet
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped) # list() convertit en une liste
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c)) # Le nombre d'éléments est le même que celui de la liste la plus courte
[(1, 4), (2, 5), (3, 6)]
>>> a1, a2 = zip(*zip(a,b)) # Contrairement à zip, zip(*) peut être compris comme un dépaquetage, renvoyant un format de matrice bidimensionnelle
>>> liste(a1)
[1, 2, 3]
>>> liste(a2)
[4, 5, 6]
>>>
Fonctions intégrées de Python