I. Циклический генератор

Напишите генератор 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
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии