Напишите генератор cycle
, который принимает список и работает аналогично итератору itertools.cycle
.
Примечание
Ваше решение должно содержать только функции.
В решении не должно быть вызовов требуемых функций.
Пример
Ввод
print(*(x for _, x in zip(range(5), cycle([1, 2, 3]))))
Вывод
1 2 3 1 2
Ввод
print(*(x for _, x in zip(range(15), cycle([1, 2, 3, 4]))))
Вывод
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3
Решение
Предельно простая задача. Нам нужно написать бесконечный цикл, который бы “пробегался” по элементам списка и отдавал бы по одному значению.
Перебрать все значения списка можно с помощью цикла for, замкнуть его на самого себя с помощью while. Остается во внутреннем цикле вернуть элемент с помощью yeld.
Посмотреть код
Решение
Python
def cycle(iterable):
while True:
for item in iterable:
yield item
не TRUE а True
Спасибо, вы абсолютно правы.