Zippen von Listen in Python: Klärung von Größenkonflikten
Beim Versuch, mehrere Listen zusammen zu komprimieren, kann es zu unerwartetem Verhalten hinsichtlich der resultierenden Listengröße kommen . Dieser Artikel befasst sich mit einem häufigen Missverständnis und bietet ein klares Verständnis der Funktionsweise von zip() in Python.
Zunächst kann ein Programm, das versucht, drei Listen der Größe 20 zu komprimieren, mit einer Ergebnisliste der Größe drei rechnen. Die resultierende Zipall-Liste enthält jedoch stattdessen 20 Elemente. Diese Diskrepanz tritt auf, weil zip() die Listen nicht verkettet; Stattdessen wird eine Liste von Tupeln erstellt, wobei jedes Tupel die entsprechenden Elemente aus den ursprünglichen Listen enthält.
Betrachten Sie das folgende Beispiel:
a = b = c = range(20) zipall = zip(a, b, c)
Die ausgegebene Zipall-Liste enthält jeweils 20 Elemente Element ist ein Tupel der Form (a_element, b_element, c_element):
[(0, 0, 0), (1, 1, 1), ... (17, 17, 17), (18, 18, 18), (19, 19, 19)]
Deshalb wird die Anzahl der Elemente bestimmt Innerhalb jedes Tupels kann man die Länge jedes dieser Elemente untersuchen:
len(zipall[0])
Dies gibt eine Länge von 3 zurück, was angibt, dass jedes Tupel drei Elemente enthält.
Beachten Sie, dass, wenn die Wenn die ursprünglichen Listen leer waren, würde der len(zipall)-Ausdruck 0 zurückgeben, da eine leere Liste keine Elemente zum Komprimieren enthält.
Das obige ist der detaillierte Inhalt vonWarum führt das Komprimieren von Listen in Python zu einer Liste von Tupeln und nicht zu einer verketteten Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!