Sobes.tech
Junior
89
questionbank

Что такое итератор?

Ответ от нейросети

sobes.tech AI

Итератор в Python — это объект, который реализует протокол итератора. Протокол итератора требует наличия двух методов: __iter__() и __next__().

  • Метод __iter__() должен вернуть сам объект-итератор.
  • Метод __next__() должен возвращать следующий элемент из последовательности. Если элементов больше нет, он должен вызвать исключение StopIteration.

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

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

# Создание списка
my_list = [1, 2, 3]

# Получение итератора из списка
my_iterator = iter(my_list)

# Использование метода __next__() для последовательного получения элементов
print(next(my_iterator))  # Выводит 1
print(next(my_iterator))  # Выводит 2
print(next(my_iterator))  # Выводит 3

# Попытка получить следующий элемент вызовет StopIteration
# print(next(my_iterator))

Цикл for в Python автоматически работает с итераторами. Когда вы пишете for item in iterable:, Python сначала вызывает iter(iterable) для получения итератора, а затем многократно вызывает next() на этом итераторе, пока не получит StopIteration.

# Цикл for использует итераторы
for item in my_list:
    print(item)