Итераторы и итерируемые объекты
Изучите протокол итераторов для создания собственного поведения при переборе
«Итераторы и итерируемые объекты» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 5 из 5. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 5 уроков всего.
Введение в итераторы и итерируемые объекты
Введение в итераторы и итерируемые объекты
Итераторы и итерируемые объекты — фундаментальные понятия Python, позволяющие работать с последовательностями данных. Они лежат в основе циклов, генераторов списков и генераторов.
В этом уроке Вы узнаете, как работают итераторы и итерируемые объекты и как создавать собственные итераторы.

Что такое итерируемый объект
Что такое итерируемый объект
Итерируемый объект — это любой объект в Python, элементы которого можно перебирать с помощью цикла for. К ним относятся списки, кортежи, множества и словари.
# Example of an iterable
my_list = [1, 2, 3]
for item in my_list:
print(item) # Outputs: 1, 2, 3Что такое итератор?
Что такое итератор?
Итератор — это объект, представляющий поток данных. Он реализует методы __iter__() и __next__().
# Example of an iterator
my_list = [1, 2, 3]
iterator = iter(my_list)
print(next(iterator)) # Outputs: 1
print(next(iterator)) # Outputs: 2
print(next(iterator)) # Outputs: 3Разница между итерируемыми объектами и итераторами
Разница между итерируемыми объектами и итераторами
Итерируемые объекты можно перебирать в цикле (например, списки), а итераторы выдают по одному элементу за раз с помощью метода next(). Итерируемый объект становится итератором, если передать его функции iter().
Создание пользовательских итераторов
Создание пользовательских итераторов
Пользовательские итераторы можно создавать, определяя класс с методами __iter__() и __next__():
# Custom iterator example
class Counter:
def __init__(self, start, end):
self.current = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.current > self.end:
raise StopIteration
self.current += 1
return self.current - 1
counter = Counter(1, 5)
for number in counter:
print(number) # Outputs: 1, 2, 3, 4, 5Использование функции для получения итератора
Использование функции iter()
Функция iter() возвращает объект-итератор из итерируемого объекта:
# Using iter() on a list
my_list = [1, 2, 3]
iterator = iter(my_list)
print(next(iterator)) # Outputs: 1Обработка StopIteration
Обработка StopIteration
Когда итератор исчерпан, он возбуждает исключение StopIteration. Так Python сообщает о завершении последовательности.
# Handling StopIteration
my_list = [1, 2, 3]
iterator = iter(my_list)
while True:
try:
print(next(iterator))
except StopIteration:
breakИтераторы и генераторы
Итераторы и генераторы
Генераторы — более простой способ создавать итераторы. Они автоматически реализуют методы __iter__() и __next__().
# Example of a generator as an iterator
def my_generator():
yield 1
yield 2
yield 3
for value in my_generator():
print(value) # Outputs: 1, 2, 3Распространённые ошибки при работе с итераторами
Распространённые ошибки при работе с итераторами
Вот некоторых ошибок следует избегать:
- Не реализовывать
__iter__()и__next__()в пользовательских итераторах. - Неправильно обрабатывать исключения
StopIteration. - Путать итераторы с итерируемыми объектами.
Что мы узнали
Что мы узнали
В этом уроке Вы узнали:
- Разницу между итерируемыми объектами и итераторами.
- Как использовать
__iter__()и__next__()для создания пользовательских итераторов. - Как использовать функцию
iter()и обрабатывать исключенияStopIteration. - Как генераторы упрощают создание итераторов.
Отличная работа! Перейдём к следующей теме.

Часто задаваемые вопросы
Урок «Итераторы и итерируемые объекты» бесплатный?
Да — полный текст урока «Итераторы и итерируемые объекты» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 5 уроков всего.
Чему я научусь в уроке «Итераторы и итерируемые объекты»?
Изучите протокол итераторов для создания собственного поведения при переборе Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 5 из 5.
Сколько времени занимает урок «Итераторы и итерируемые объекты»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Декораторы
- Генераторы
- Менеджеры контекста (операторы with)
- Генераторы выражений (списки, множества и словари)
- Итераторы и итерируемые объекты