我不知道如何在Python生成器中预测下一个元素。一旦我看到它,它就消失了。
这就是我的意思:
gen = iter([1,2,3])
next_value = gen.next() # okay, I looked forward and see that next_value = 1
# but now:
list(gen) # is [2, 3] -- the first value is gone!
这里是一个更真实的例子:
gen = element_generator()
if gen.next_value() == 'STOP':
quit_application()
else:
process(gen.next())
有人可以帮我编写一个能够向前查看一个元素的生成器吗?
另请参阅: 如何在Python中重置生成器对象
gen.next()
。这就是异常StopIteration
的作用。在元素“STOP”之后生成器中有什么?为什么生成器在此时不会被简单地耗尽?或者,如果不可能,为什么不让生成器在当前元素为“Stop”时raise StopIteration
? - Tim Pietzcker