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
Libérer: 2024-12-15 17:18:11
original
131 Les gens l'ont consulté

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))
Copier après la connexion

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)]
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal