Maison >développement back-end >Tutoriel Python >Pourquoi `zip()` en Python renvoie-t-il une liste de 20 tuples lors de la combinaison de trois listes ?

Pourquoi `zip()` en Python renvoie-t-il une liste de 20 tuples lors de la combinaison de trois listes ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-15 17:18:11132parcourir

Why Does `zip()` in Python Return a List of 20 Tuples When Combining Three Lists?

Comprendre la fonctionnalité des listes Zip en Python

Dans la programmation Python, la fonction zip() joue un rôle crucial dans la combinaison de plusieurs listes en une seule liste de tuples. Chaque tuple représente une ligne, associant les éléments correspondants des listes d'entrée.

Considérez l'extrait de code suivant :

x1, x2, x3 = stuff.calculations(withdataa)

zipall = zip(x1, x2, x3)

print("len of zipall %s" % len(zipall))

Contrairement au résultat attendu de trois, la sortie est 20, indiquant un résultat fondamental malentendu.

Dévoilement de la nature des listes zippées

Lorsque vous compressez trois listes avec 20 éléments chacun, la liste résultante contient 20 tuples. Chaque tuple contient trois éléments, un de chacune des listes d'entrée.

Par exemple :

In [1]: a = b = c = range(20)

In [2]: zip(a, b, c)
Out[2]:
[(0, 0, 0),
 (1, 1, 1),
 ...
 (17, 17, 17),
 (18, 18, 18),
 (19, 19, 19)]

Détermination de la longueur du tuple

Pour déterminer la longueur de chaque tuple, vous peut inspecter le premier élément :

In [3]: result = zip(a, b, c)

In [4]: len(result[0])
Out[4]: 3

Cependant, cette approche peut échouer si les listes d'entrée sont vides. Par conséquent, il est préférable d'utiliser une méthode plus robuste pour déterminer le nombre d'éléments dans chaque tuple.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn