Wie kann man verhindern, dass der Iterator in Python (3.x) erschöpft wird?

Wenn ich zwei Listen erstelle und sie zip

a=[1,2,3]
b=[7,8,9]
z=zip(a,b)

Dann typisiere ich z in zwei Listen

l1=list(z)
l2=list(z)

Dann stellt sich heraus, dass der Inhalt von l1 gut ist [(1,7), (2,8), (3,9)], aber der Inhalt von l2 ist nur [].

Ich denke, dies ist das allgemeine Verhalten von Python in Bezug auf Iterables. Für mich als Programmieranfänger, der aus der C-Familie kommt, ergibt das keinen Sinn. Warum verhält es sich so? Und gibt es eine Möglichkeit, dieses Problem zu überwinden?

Ich meine, ja, in diesem speziellen Beispiel kann ich nur l1 in l2 kopieren, aber gibt es im Allgemeinen eine Möglichkeit, das, was auch immer Python verwendet, um z zu wiederholen, nachdem ich es einmal wiederholt habe, zurückzusetzen?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage