Python 3.2.3, mit Idle, Python-Shell
%Vor%Ergebnis: (1,5) (2,6) (3,7)
GENAU den gleichen Schleifencode einfügen, um z sofort wieder in einer for-Schleife anzuzeigen (nichts zwischen dem obigen und dem nächsten Teil):
%Vor%Ergebnis: (leer, wie in keinem Ergebnis)
z existiert noch, wie
%Vor%führt zu
%Vor%Ich kann sogar das t, t2 neu zuweisen, um wieder gezippt zu werden, aber dann funktioniert es nur einmal und nur einmal, wieder.
Soll das so funktionieren? Theres keine Erwähnung in den Dokumenten Ссылка darüber.
So funktioniert es in Python 3.x. In python2.x hat zip
eine Liste von Tupeln zurückgegeben, aber für python3.x verhält sich zip
wie itertools.izip
in python2.x. Um das Verhalten von python2.x wieder herzustellen, erstellen Sie einfach eine Liste aus der Ausgabe von zip
:
Beachten Sie, dass in python3.x viele eingebaute Funktionen jetzt Iteratoren und nicht Listen zurückgeben ( map
, zip
, filter
)
Weil zip
einen Iterator in Python 3.x zurückgibt. Wenn Sie es wiederverwenden wollen, dann machen Sie es zu einem list
first:
zip
gibt einen Iterator (in Python 3) zurück. Sie können nur einmal über einen Iterator iterieren. Der Iterator verschwindet nicht, wenn er keine Elemente mehr enthält, aber wenn er erneut durchlaufen wird, werden 0 Elemente zurückgegeben. Wenn Sie eine Liste wünschen, rufen Sie list
auf:
Tags und Links python python-3.x