builtins.object builtins.zip
class zip(builtins.object):
zip
permet d'agréger les éléments de n collections séquentielles et de parcourir ces éléments tuple par tuple.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.
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
.
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.
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=", ") |
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
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__] |
Signature de la méthode | Description |
---|---|
__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__] |
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 :