Participer au site avec un Tip
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 » Python 3.11.3

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.

help(zip)

zip(*iterables, strict=False) --> Yield tuples until an input is exhausted.

   >>> list(zip('abcdefg', range(3), range(4)))
   [('a', 0, 0), ('b', 1, 1), ('c', 2, 2)]

The zip object yields n-length tuples, where n is the number of iterables
passed as positional arguments to zip().  The i-th element in every tuple
comes from the i-th iterable argument to zip().  This continues until the
shortest argument is exhausted.

If strict is true and one of the arguments is exhausted before the others,
raise a ValueError.

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__]
__init__(self, /, *args, **kwargs) Initialize self. See help(type(self)) for accurate signature. [extrait de __init__.__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__]
__setstate__ Set state information for unpickling. [extrait de __setstate__.__doc__]

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

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

Voir aussi

La classe enumerate