私は値のリストを無期限に循環するジェネレータを必要とします。無限循環発生器を作成するためのきれいな方法はありますか?
私の解決策ですが、もっと明白な解決策がありません。
成分:無限にネストされたリストを平坦生成機能、およびリスト付随自体に
def ge(x):
for it in x:
if isinstance(it, list):
yield from ge(it)
else:
yield(it)
def infinitecyclegenerator(l):
x = l[:]
x.append(x)
yield from ge(x)
使用:
g = infinitecyclegenerator([1,2,3])
next(g) #1
next(g) #2
next(g) #3
next(g) #1
next(g) #2
next(g) #3
next(g) #1
...
私は些細に失われることがあり、前記したよう同じことをする方法と私は喜んで学ぶだろう。もっときれいな方法がありますか?
また、メモリ消費について心配する必要はありませんか?