Python Glossary English

все Python 3itertoolsфункция

itertools.cycle

itertools

Бесконечно повторяет элементы итерируемого по кругу.

Синтаксис

itertools.cycle(iterable)

На первом проходе cycle сохраняет копию всех элементов, чтобы потом повторять их бесконечно, — поэтому на огромном или бесконечном источнике он незаметно съест память. Сам итератор никогда не заканчивается: list(cycle(...)) зависнет навсегда, всегда ограничивай его через islice или через next() в цикле с собственным условием выхода.

Примеры

import itertools
c = itertools.cycle([1, 2, 3])
print([next(c) for _ in range(5)])   # → [1, 2, 3, 1, 2]
print(list(itertools.islice(itertools.cycle('ab'), 5)))   # → ['a', 'b', 'a', 'b', 'a']
print(list(zip('abcd', itertools.cycle([0, 1]))))   # → [('a', 0), ('b', 1), ('c', 0), ('d', 1)]
print(list(itertools.islice(itertools.cycle([]), 3)))   # → []

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности