Встречается на собеседованиях • сегодня

В чем преимущество генератора над итератором

Генераторы — это подвид итераторов, но с ключевыми преимуществами:

  1. Ленивые вычисления — элементы генерируются по требованию, а не хранятся в памяти целиком. Это экономит память, особенно для больших данных.
  2. Простота создания — вместо реализации __iter__ и __next__ достаточно функции с yield.
  3. Автоматическое управление состоянием — генератор запоминает место выполнения между вызовами.

Пример:

python
def infinite_sequence():
    num = 0
    while True:
        yield num
        num += 1

gen = infinite_sequence()  # Не потребляет память бесконечно
print(next(gen))  # 0
print(next(gen))  # 1

Итератор потребовал бы ручного управления состоянием в классе. Генераторы идеальны для потоковой обработки данных, например, чтения больших файлов построчно.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы