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

В чем сходства между итератором и генератором в Python

Итераторы и генераторы в Python оба позволяют работать с последовательностями данных, но у них есть ключевые сходства:

  1. Ленивое вычисление – элементы обрабатываются по одному, а не все сразу, что экономит память.
  2. Протокол итерации – оба реализуют методы __iter__() и __next__(), что позволяет использовать их в циклах for.
  3. Одноразовость – после завершения итерации (достижения StopIteration) их нельзя переиспользовать без повторного создания.

Пример генератора (частный случай итератора):

python
def count_up_to(n):
    i = 1
    while i <= n:
        yield i  # генератор приостанавливается здесь
        i += 1

# Использование как итератора
for num in count_up_to(5):
    print(num)

Главное отличие: генераторы создаются с помощью yield и более лаконичны, а итераторы требуют явного описания __next__() и __iter__().

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

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

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

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