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 ?
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.
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)]
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!