Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: iter, next

В чем разница между итератором и генератором?

Этот вопрос проверяет знание ключевых понятий Python, таких как итерации и ленивые вычисления.

Короткий ответ

Итератор — это объект, который реализует протокол итерации (__iter__ и __next__). Генератор — это функция, которая возвращает итератор и использует ключевое слово yield для сохранения состояния между вызовами.

Длинный ответ

Итератор — это объект, с помощью которого можно проходить по элементам коллекции один за другим. Он реализует методы __iter__ (возвращает самого себя) и __next__ (возвращает следующий элемент или вызывает StopIteration, если элементы закончились). 

Пример:

my_list = [1, 2, 3]  
iterator = iter(my_list)  
print(next(iterator))  # 1  
print(next(iterator))  # 2  

Генератор — это упрощенный способ создания итераторов. Он создается с помощью функции, содержащей yield, и сохраняет свое состояние между вызовами. 

Пример:

def my_generator():  
    yield 1  
    yield 2  
    yield 3  

gen = my_generator()  
print(next(gen))  # 1  
print(next(gen))  # 2  

Генераторы удобны для работы с большими объемами данных, так как не загружают их полностью в память.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • Python

    Python

Ключевые слова

#iter

#next

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.