0Pricing
Learn AI with Python · Урок

Итераторы и итерируемые объекты

Изучите протокол итераторов для создания собственного поведения при переборе

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

Введение в итераторы и итерируемые объекты

Введение в итераторы и итерируемые объекты

Итераторы и итерируемые объекты — фундаментальные понятия Python, позволяющие работать с последовательностями данных. Они лежат в основе циклов, генераторов списков и генераторов.

В этом уроке Вы узнаете, как работают итераторы и итерируемые объекты и как создавать собственные итераторы.

Итераторы и итерируемые объекты — иллюстрация 1

Что такое итерируемый объект

Что такое итерируемый объект

Итерируемый объект — это любой объект в 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.
  • Как генераторы упрощают создание итераторов.

Отличная работа! Перейдём к следующей теме.

Итераторы и итерируемые объекты — иллюстрация 11

Часто задаваемые вопросы

Урок «Итераторы и итерируемые объекты» бесплатный?

Да — полный текст урока «Итераторы и итерируемые объекты» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 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 — локальная установка не требуется.

Все уроки этого курса

  1. Декораторы
  2. Генераторы
  3. Менеджеры контекста (операторы with)
  4. Генераторы выражений (списки, множества и словари)
  5. Итераторы и итерируемые объекты
← Назад к Learn AI with Python