Какое объяснение лучше всего описывает разницу между iterable и iterator в контексте повторных проходов?

Aiterable всегда одноразовый, а iterator можно перебирать в for бесконечно сколько угодно раз без сброса состояния
Biterator нельзя использовать в for, а iterable можно: разница в том, какой объект поддерживает синтаксис цикла
Citerable возвращает новый iterator при каждом вызове iter(obj), поэтому по нему обычно можно проходить несколько раз; iterator хранит состояние
DРазницы между iterable и iterator нет: любой объект в Python можно итерировать сколько угодно раз без потери данных и сброса позиции
Правильный ответ. iterable — это источник итераторов, iterator — это «курсор» по данным, который исчерпывается после прохода.

Разбор

Список, строка, словарь — обычно iterable: iter(obj) создаёт новый iterator, поэтому вы можете сделать два независимых for-прохода. iterator (например, результат iter(list) или генератор) сам хранит позицию и после исчерпания не «перематывается». Если нужен повторный проход, создавайте новый iterator или материализуйте данные.

Проверь себя · 1/3разбор после ответа
Что произойдёт при выполнении it = iter([]) и затем next(it)?
Тренировать Python в Telegram

Ещё вопросы по теме «Итераторы и генераторы»