Sobes.tech
Назад к вопросам
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))  # [] — генератор уже исчерпан

Чтобы пройтись по данным несколько раз, нужно либо создавать новый генератор, либо использовать коллекцию, которая хранит все элементы (например, список).