Python: уроки, справочник и задачи

Итератор python

Раздел: Функции Python · Обновлено 31.10.2026

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

Пример использования методов __iter__() и __next__() для созданного пользовательского итератора:

Итератор python
Фото: U.S. Department of Agriculture / Public domain, Wikimedia Commons
Содержание статьи
  1. 1. Итераторы в Python
  2. 2. Цикл for
  3. 3. Создание пользовательских итераторов
  4. 4. Бесконечные итераторы используя count() из модуля itertools
  5. Заключение
class MyIterator:
    def __init__(self, max_num):
        self.max_num = max_num
        self.current = 0
    def __iter__(self):
        return self
    def __next__(self):
        if self.current < self.max_num:
            self.current += 1
            return self.current
        raise StopIteration
# Создание экземпляра пользовательского итератора
my_iter = MyIterator(3)
# Использование итератора с помощью цикла for
for num in my_iter:
    print(num)

В данном примере:

Результат выполнения кода будет выводить числа от 1 до 3 в консоль.

1. Итераторы в Python

2. Цикл for

Пример использования цикла for:

my_list = [1, 2, 3, 4]
for item in my_list:
    print(item)

3. Создание пользовательских итераторов

Пример создания пользовательского итератора:

class MyIterator:
    def __init__(self, max_num):
        self.max_num = max_num
        self.current = 0
    def __iter__(self):
        return self
    def __next__(self):
        if self.current < self.max_num:
            self.current += 1
            return self.current
        raise StopIteration
my_iter = MyIterator(3)
for num in my_iter:
    print(num)

4. Бесконечные итераторы используя count() из модуля itertools

Пример создания бесконечного итератора с помощью count():

from itertools import count
for i in count(5):  # Генерирует бесконечную последовательность начиная с 5
    print(i)  # Выводит 5, 6, 7, ...
Итераторы играют важную роль в Python, обеспечивая эффективную обработку данных и упрощая работу с последовательностями. Понимание и использование итераторов позволяет писать более эффективный и понятный код.

Заключение

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

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

Надеемся, что данная статья поможет вам лучше понять и использовать итераторы в Python, что, в свою очередь, улучшит ваш опыт разработки на этом языке программирования.