Я пытаюсь изучить Python, и я начал играть с некоторым кодом:
a = [3,4,5,6,7]
for b in a:
print a
a.pop(0)
И результат:
[3, 4, 5, 6, 7]
[4, 5, 6, 7]
[5, 6, 7]
Я знаю, что не хорошая практика изменяет структуры данных, пока я зацикливаюсь на ней, но я хочу понять, как Python управляет итераторами в этом случае.
Главный вопрос: как он знает, что он должен закончить цикл, если я изменяю состояние a
?