Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: iterator, iterable, Python, __iter__, __next__

Чем итератор отличается от итерируемого объекта?

Вопрос проверяет понимание разницы между итератором и итерируемым объектом в Python, что важно для работы с циклами и последовательностями.

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

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

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

Основное различие

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

Пример кода

my_list = [1, 2, 3]  # iterable
iterator = iter(my_list)  # получаем iterator
print(next(iterator))  # 1
print(next(iterator))  # 2
print(next(iterator))  # 3
# print(next(iterator))  # StopIteration

Как это работает

Цикл for автоматически вызывает iter() у итерируемого объекта, получает итератор и затем вызывает next() до StopIteration. Итератор можно использовать только один раз, так как он не сбрасывается. Итерируемый объект можно перебирать многократно, создавая новые итераторы.

Вывод

Понимание этой разницы помогает эффективно работать с большими данными, используя ленивые вычисления, и избегать ошибок при переборе коллекций.

  • Аватар

    Python Guru

    Sergey Filichkin

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • Python

    Python

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

#iterator

#iterable

#Python

#__iter__

#__next__

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

  • Аватар

    Python Guru

    Sergey Filichkin

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