Проверяет понимание механизма пошагового получения элементов и различия между iterable и iterator.
Итератор — это объект, который возвращает элементы по одному при вызове next(). Он хранит текущее состояние перебора. Итератор реализует методы __iter__() и __next__(). Когда элементы заканчиваются, выбрасывается исключение StopIteration.
Итератор — это объект, который управляет процессом перебора элементов и знает, какой элемент возвращать следующим.
Итератор — это объект, который:
Реализует метод __next__()
Реализует __iter__() и возвращает сам себя
numbers = [10, 20, 30]
it = iter(numbers)
print(next(it)) # 10
print(next(it)) # 20
Каждый вызов next() возвращает следующий элемент.
Когда элементы заканчиваются:
next(it) # StopIteration
Это сигнал для цикла for остановиться.
Важно различать:
iterable — источник данных
iterator — механизм перебора
Например:
numbers = [1,2,3]
iter(numbers) # возвращает новый итератор
Каждый вызов создаёт новый итератор.
Итераторы применяются:
в циклах
в генераторах
в потоковой обработке данных
при чтении больших файлов
Итератор — это объект, который хранит состояние перебора и возвращает элементы по одному. Это позволяет эффективно работать с большими наборами данных.