Как предотвратить истощение итератора в Python (3.x)?
Если я создаю два списка и заархивирую их
a=[1,2,3]
b=[7,8,9]
z=zip(a,b)
Затем я распечатываю z в два списка
l1=list(z)
l2=list(z)
Затем содержимое l1 оказывается нормальным [(1,7), (2,8), (3,9)], но содержимое l2 просто [].
Думаю, это общее поведение python по отношению к итерируемым. Но как начинающий программист, мигрирующий из семейства C, это не имеет смысла для меня. Почему он так себя ведет? И есть ли способ обойти эту проблему?
Я имею в виду, да, в этом конкретном примере я могу просто скопировать l1 в l2, но в целом есть ли способ «сбросить» то, что Python использует для итерации «z» после того, как я повторю один раз?