【发布时间】:2014-06-08 14:50:56
【问题描述】:
我是 python 生成器的新手。我有一个足够简单的代码,我正在使用它,但我无法理解我从中得到的输出。这是我的代码:
def do_gen():
for i in range(3):
yield i
def incr_gen(y):
return y + 1
def print_gen(x):
for i in x:
print i
x = do_gen()
y = (incr_gen(i) for i in x)
print_gen(x)
print_gen(y)
我希望我的输出是这样的:
0 1 2
1 2 3
但我只看到: 0 1 2
我不明白这个输出。谁能帮我解决我缺乏理解的问题?提前致谢。
【问题讨论】:
-
当你到达最后一行时,你的发电机已经耗尽了。