所以我需要有两个值来回振荡.
第一次说2,第二次说4.从顶部重复.
所以我编写了下面的生成器函数.每次通过next调用它都会返回后续值,然后从顶部重复.
为了学习,改进,不是意见,还有更好的方法吗?在Python中似乎总是有更好的方法,我喜欢学习它们以提高我的技能.
“主要代码”仅用于显示正在使用的发生器,振荡器的示例,而不是振荡器的主要用途.
## Main code
go_Osci = g_Osci()
for i in xrange(10):
print("Value: %i") %(go_Osci.next())
## Generator
def g_Osci():
while True:
yield 2
yield 4
最佳答案 是的,还有更好的方法.
itertools.cycle
是为此任务明确设计的:
>>> from itertools import cycle
>>> for i in cycle([2, 4]):
... print i
...
2
4
2
4
2
4
2
# Goes on forever
您也可以使用enumerate
仅循环一定次数:
>>> for i, j in enumerate(cycle([2, 4])):
... if i == 10: # Only loop 10 times
... break
... print j
...
2
4
2
4
2
4
2
4
2
4
>>>