Ich sehe ein seltsames Verhalten bei der Arbeit mit der zip() -Funktion. Wenn ich die folgende Operation ausführe len (list (z)) wo z ein Zip-Objekt ist, ist das Ergebnis 0 (was mir falsch scheint), und die Aktion scheint das Zip-Objekt zu löschen. Kann mir bitte jemand helfen zu verstehen, was vor sich geht.Das Ausführen von len in der Liste eines Zip-Objekts löscht die Postleitzahl
# python3
Python 3.2.3 (default, Sep 30 2012, 16:41:36)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> w = [11, 22, 33, 44, 55, 66]
>>> x = [1, 2, 3, 4]
>>> y = ['a', 'b', 'c']
>>> z = zip(x, y, w)
>>> z
<zip object at 0x7f854f613cb0>
>>> list(z)
[(1, 'a', 11), (2, 'b', 22), (3, 'c', 33)]
>>> len(list(z))
0
>>> list(z)
[]
>>> z
<zip object at 0x7f854f613cb0>
>>>
Danke, Ahmed.
Für alle, die nur auf Python 3, in Python 2.x zip verwendet wird, liefert eine Liste von Tupeln. – TimothyAWiseman
Danke für das Hinzufügen. Auch 'zip()' von Python 3 funktioniert wie "itertools.izip()" von 2.x ' – bernie
Natürlich könnte man einfach' double' schreiben als 'double = (x * 2 für x in L)' –