Sobes.tech
Middle
49

Kann man zweimal durch den Generator gehen? Warum?

Unternehmen wurden gefragt
Лига Цифровой ЭкономикиЛига Цифровой Экономики

Antwort von AI

sobes.tech KI

Генератор в Python — это итератор, который генерирует значения «на лету» и сохраняет своё состояние между вызовами. Его можно пройти только один раз, потому что после полного обхода генератор считается исчерпанным и не может быть перезапущен.

Если попытаться пройтись по генератору второй раз, он сразу же завершится, не выдавая элементов.

Пример:

def gen():
    yield 1
    yield 2
    yield 3

g = gen()
print(list(g))  # [1, 2, 3]
print(list(g))  # [] — генератор уже исчерпан

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