Вопрос проверяет базовое понимание работы генераторов и способов извлечения значений.
Значения из генератора можно получать с помощью цикла for, функции next() или преобразования в список. Цикл for — самый распространённый способ. next() позволяет получать значения по одному. После завершения генератора возникает StopIteration.
Генератор возвращает значения постепенно, а не сразу весь набор.
Самый распространённый способ:
def gen():
yield 1
yield 2
for x in gen():
print(x)
Python сам вызывает next() до завершения генератора.
Позволяет получать значения вручную:
g = gen()
print(next(g))
print(next(g))
Следующий вызов приведёт к StopIteration.
Иногда нужно получить все значения:
list(gen())
Это полностью исчерпывает генератор.
Рекомендуется:
for — основной вариант
next() — когда нужен контроль
list() — когда объём данных небольшой
Получать значения из генератора можно через for, next() или преобразование в коллекцию. Выбор зависит от задачи и объёма данных.