Назад к вопросам
Лига Цифровой Экономики
Middle
3
Можно ли пройтись по генератору два раза? Почему?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Генератор в Python — это итератор, который генерирует значения «на лету» и сохраняет своё состояние между вызовами. Его можно пройти только один раз, потому что после полного обхода генератор считается исчерпанным и не может быть перезапущен.
Если попытаться пройтись по генератору второй раз, он сразу же завершится, не выдавая элементов.
Пример:
def gen():
yield 1
yield 2
yield 3
g = gen()
print(list(g)) # [1, 2, 3]
print(list(g)) # [] — генератор уже исчерпан
Чтобы пройтись по данным несколько раз, нужно либо создавать новый генератор, либо использовать коллекцию, которая хранит все элементы (например, список).