Heim >Backend-Entwicklung >Python-Tutorial >Warum gibt „zip()' in Python eine Liste mit 20 Tupeln zurück, wenn drei Listen kombiniert werden?
Bei der Python-Programmierung spielt die Funktion zip() eine entscheidende Rolle beim Kombinieren mehrerer Listen zu einer einzigen Liste von Tupeln. Jedes Tupel stellt eine Zeile dar und paart entsprechende Elemente aus den Eingabelisten.
Betrachten Sie den folgenden Codeausschnitt:
x1, x2, x3 = stuff.calculations(withdataa) zipall = zip(x1, x2, x3) print("len of zipall %s" % len(zipall))
Im Gegensatz zum erwarteten Ergebnis von drei ist die Ausgabe 20, was auf eine Grundfunktion hinweist Missverständnis.
Wenn Sie drei Listen mit zippen Jeweils 20 Elemente, die resultierende Liste enthält 20 Tupel. Jedes Tupel enthält drei Elemente, eines aus jeder der Eingabelisten.
Zum Beispiel:
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)]
Um die Länge jedes Tupels zu bestimmen, müssen Sie kann das erste Element untersuchen:
In [3]: result = zip(a, b, c) In [4]: len(result[0]) Out[4]: 3
Dieser Ansatz kann jedoch fehlschlagen, wenn die Eingabelisten leer sind. Daher ist es am besten, eine robustere Methode zu verwenden, um die Anzahl der Elemente in jedem Tupel zu bestimmen.
Das obige ist der detaillierte Inhalt vonWarum gibt „zip()' in Python eine Liste mit 20 Tupeln zurück, wenn drei Listen kombiniert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!