Heim >Backend-Entwicklung >Python-Tutorial >Warum gibt „zip()' in Python eine Liste mit 20 Tupeln zurück, wenn drei Listen kombiniert werden?

Warum gibt „zip()' in Python eine Liste mit 20 Tupeln zurück, wenn drei Listen kombiniert werden?

Susan Sarandon
Susan SarandonOriginal
2024-12-15 17:18:11130Durchsuche

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

Verstehen der Funktionalität von Zip-Listen in Python

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.

Enthüllung der Natur komprimierter Listen

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)]

Bestimmen der Tupellänge

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn