Jak zapobiec wyczerpaniu iteratora w Pythonie (3.x)?
Jeśli utworzę dwie listy i rozpakuję je
a=[1,2,3]
b=[7,8,9]
z=zip(a,b)
Następnie wpisuję z na dwie listy
l1=list(z)
l2=list(z)
Wtedy zawartość l1 okazuje się być dobra [(1,7), (2,8), (3,9)], ale zawartość l2 jest po prostu [].
Myślę, że jest to ogólne zachowanie Pythona w odniesieniu do iterable. Ale jako początkujący programista migrujący z rodziny C nie ma to dla mnie sensu. Dlaczego tak się zachowuje? A czy istnieje sposób na ominięcie tego problemu?
Mam na myśli, tak w tym konkretnym przykładzie, mogę po prostu skopiować l1 do l2, ale ogólnie czy istnieje sposób na „zresetowanie” tego, czego Python używa do iteracji „z” po tym, jak raz iteruję?