Есть it = iter([1, 2, 3]). Выполнили next(it) два раза, а затем запустили цикл for x in it: print(x). Что будет напечатано?

AБудет напечатано 1, 2, 3.
BБудет напечатано только 3.
CБудет напечатано только 1.
DНичего не будет напечатано.
Правильный ответ. Iterator продолжает с текущей позиции; next() уже «съел» первые элементы.

Разбор

Два вызова next(it) последовательно забрали 1 и 2. Цикл for продолжит чтение того же iterator и получит только оставшееся значение 3. Это удобно, но может стать багом, если вы не ожидали, что iterator разделяется между next() и for.

Проверь себя · 1/3разбор после ответа
Что создаёт выражение squares = (x * x for x in xs)?
Тренировать Python в Telegram

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