Как предотвратить истощение итератора в 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» после того, как я повторю один раз?

Ответы на вопрос(5)

Ваш ответ на вопрос