Создаем бесконечный итератор



Функция cycle() из itertools принимает на вход итерируемый объект и создает бесконечный итератор, циклически возвращающий элементы данного объекта.



Фишка заключается в том, что когда элементы последовательности заканчиваются, итерация начинается вновь с первого элемента.



Но если вы проходитесь циклом по такому итератору, то важно предусмотреть выход из цикла, иначе он станет бесконечным (как у нас в первом случае на картинке).



Мы также можем воспользоваться islice(), который вернет итератор по подмножеству переданного объекта.



#itertools