2017-01-25 5 views
0

einen Generator Ausdruck gegeben:Wie implementiert man "circular" Generator in 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: 

Wie kann ich einen Generator implementieren, wenn die „StopIteration Ausnahme“ passieren würde, dann ist es „zurückspulen“ am Anfang, wird 0 zurückgegeben wieder?

+0

Was versuchen Sie? Wie oft sollte es sich wiederholen? Scheint wie ein [XY Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – MYGz

+2

Ein "Zyklus" könnte man sagen? –

Antwort

3

Sie können hierfür die Methode itertools.cycle(iterable) verwenden.

Es dauert ein iterable als Parameter und Zyklen durch seine Elemente.

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