2017-01-25 3 views
0

Учитывая выражение генератора:Как реализовать «круговой» генератор в Python?

a = (x for x in range(3)) 
print(next(a)) # 0 
print(next(a)) # 1 
print(next(a)) # 2 
print(next(a)) # StopIteration 
exception 0 1 2 
--------------------------------------------------------------------------- StopIteration        
Traceback (most recent call last) 
<ipython-input-40-863a9b3464a7> in <module>()  
3 print(next(a))  
4 print(next(a)) 
----> 5 print(next(a)) 

StopIteration: 

Как я могу реализовать генератор, когда «исключение StopIteration» будет, то «перемотать» к началу, снова возвращает 0?

+0

Что вы пытаетесь? Сколько раз он должен повторять? Похоже на [проблема XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – MYGz

+2

«Цикл», который вы могли бы сказать? –

ответ

3

Для этого вы можете использовать метод itertools.cycle(iterable).

Он принимает итерируемый параметр и циклически перемещает его элементы.

>>>cycle('ABCD') --> A B C D A B C D A B C D 

 Смежные вопросы

  • Нет связанных вопросов^_^