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