Функція
cycle()
з itertools
приймає на вхід об’єкт, що ітерується, і створює нескінченний ітератор, який циклічно повертає елементи даного об’єкта. Фішка в тому, що коли елементи послідовності закінчуються, ітерація починається знову з першого елемента.
from itertools import cycle, islice
colors = cycle(['red', 'white', 'blue'])
for item in colors:
print(item, end=' ')
# Output: red white blue red white blue...
for color in islice(colors, 3, 5):
print(color, end=' ')
# Output: red white
Але якщо ви проходите циклом по такому ітератору, то важливо передбачити вихід з циклу, інакше він стане нескінченним (як у нас в першому випадку). Ми також можемо скористатися islice()
, який поверне ітератор по підмножині переданого об’єкта.
#cycle // #practice // Python