Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Module « builtins »

Classe « zip »

Informations générales

Héritage

builtins.object
    builtins.zip

Définition

class zip(builtins.object):

Description

La classe zip permet d'agréger les éléments de n collections séquentielles et de parcourir ces éléments tuple par tuple. Par exemple, vous pouvez avoir une liste d'abscisses et une autre liste d'ordonnées. Grâce à la classe zip vous pouvez combiner ces deux listes pour produire un ensemble de coordonnées (de points) dans le plan. Chaque point sera un tuple constitué d'une abscisse et d'une ordonnée : ces deux composantes étant associées aux valeurs de même index dans les collections d'origines.

Vous pouvez spécifier autant de collections (listes, tuples, chaînes de caractères) que souhaité et c'est la collection la plus petite qui dimensionnera le nombres de tuples produits. Cette classe implémentant un itérateur, il sera possible d'en parcourir ses données au travers d'une boucle for.

en Python 2.x, zip était implémenté sous forme d'une fonction de type « générateur ». Depuis Python 3.x, zip est implémenté grâce à une classe d'itérateur. Cela explique que de nombreuses documentations sur Internet parlent encore de la fonction zip.

Description [extrait de zip.__doc__]

zip(*iterables) --> zip object

Return a zip object whose .__next__() method returns a tuple where
the i-th element comes from the i-th iterable argument.  The .__next__()
method continues until the shortest iterable in the argument sequence
is exhausted and then it raises StopIteration.

Exemple(s) de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
#!/usr/bin/python3

xValues = [10, 20, 30, 40, 50]
yValues = [60, 70, 80, 90, 100]
zValues = [5, 4, 3, 2, 1]

# Première technique pour lister un ensemble de points dans l'espace
print("--- 1ère technique ------------------------")
points = list(zip(xValues, yValues, zValues))
for point in points:
    print(point)
    
# Première technique pour lister un ensemble de points dans l'espace
print("--- 2nde technique ------------------------")
for x, y, z in zip(xValues, yValues, zValues):
    print(x, y, z, sep=", ")
Exemple d'utilisation de la classe zip

Et voici les résultats produits par cet exemple de code.

--- 1ère technique ------------------------
(10, 60, 5)
(20, 70, 4)
(30, 80, 3)
(40, 90, 2)
(50, 100, 1)
--- 2nde technique ------------------------
10, 60, 5
20, 70, 4
30, 80, 3
40, 90, 2
50, 100, 1

Existant depuis

2.0

Constructeur(s)

Signature du constructeur Description
__new__(*args, **kwargs) Create and return a new object. See help(type) for accurate signature. [extrait de __new__.__doc__]

Liste des opérateurs

Opérateurs hérités de la classe object

__eq__, __ge__, __gt__, __le__, __lt__, __ne__

Liste des méthodes

Toutes les méthodes Méthodes d'instance Méthodes statiques Méthodes dépréciées
Signature de la méthodeDescription
__getattribute__(self, name) Return getattr(self, name). [extrait de __getattribute__.__doc__]
__iter__(self) Implement iter(self). [extrait de __iter__.__doc__]
__next__(self) Implement next(self). [extrait de __next__.__doc__]
__reduce__ Return state information for pickling. [extrait de __reduce__.__doc__]

Méthodes héritées de la classe object

__delattr__, __dir__, __format__, __hash__, __init_subclass__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__