Код Senior Итераторы и генераторы обновлено

Свой итерируемый класс, который можно обходить много раз

Условие

Реализуйте класс Countdown(n): при обходе выдаёт n, n-1, ..., 1. Объект должен поддерживать повторный и вложенный обход (каждый for независим) и len(). Проверка run(n) возвращает [list(c), list(c), количество пар во вложенном цикле, len(c)].

Примеры

run(3) // [[3, 2, 1], [3, 2, 1], 9, 3]
run(0) // [[], [], 0, 0]
run(1) // [[1], [1], 1, 1]

Как подойти

Подсказки: 2
  1. Сделайте __iter__ генератором.
  2. Не храните текущую позицию в self.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме