Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Итерация, итераторы и итерируемые объекты в Python

dota sf Ученик (133), закрыт 5 лет назад
Изучаю Python. Не могу до конца разобраться с итерацией. Насколько я понял, сама-по-себе итерация - это один шаг по итерируемому объекту в цикле. Итерируемый объект - это объект, который можно разбить на части, чтобы инструмент языка производил итерацию над каждой из этих частей этого объекта. Итератор - это то, что разбивает объект на части для итераций (и, возможно, индексирует их? не совсем понял). Т. е. объект типа список, не является итератором, поэтому, чтобы произвести итерации над ним вручную, нужно использовать метод __iter__ или функцию iter() и они являются итераторами (?). В отличии, от типа файл, который сам себе является итератором. Запутался в понятиях (
Лучший ответ
DONER KEBAB Просветленный (34275) 5 лет назад
>Итератор - это то, что разбивает объект на части для итераций
ничего он не разбивает, было бы неэффективно

итератор это обобщенный "шагатель"-указатель на следующий элемент в итерабельном (iterable) объекте, может быть хоть лист, хоть строка, любой объект, которому задан такой интерфейс

необходим для экономии памяти и времени процессора, чтобы не хранить например весь список, а получать (next(i)) каждый раз следующий элемент программно через генератор (yield)
Остальные ответы
Swordmage Мудрец (13348) 5 лет назад
Капец - вы какуето псеудо науку там как будто учите а не программирование. Все можно гораздо проще объяснить:
---
Итератор - любая переменная значения которой будет меняться каждый раз при окончании цикла.
Код внутри цикла использует итератор что бы иметь новые данные.
Похожие вопросы