2017-01-25 2 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)メソッドを使用できます。

パラメータとしてiterableを取り、アイテムを循環します。

>>>cycle('ABCD') --> A B C D A B C D A B C D 
関連する問題