【发布时间】:2018-04-19 06:51:27
【问题描述】:
这是我的第一个问题,所以我会尽量说清楚。 我注意到 next() 函数,它似乎比经典的嵌套循环更优雅。 所以我运行了一个简单的代码:
liste=['foo','bar','baz']
try:
G= (print(x) for x in liste)
print(next(G))
print(next(G))
print(next(G))
print(next(G))
except StopIteration:
print("That was obviously expected")
我期待:
foo
bar
baz
That was obviously expected
出现在我的屏幕上,但我得到了:
foo
None
bar
None
baz
None
That was obviously expected
所以我的问题很简单:
为什么运行后会有None回复?
什么是好方法,什么时候是使用next()的好时机?
谢谢
【问题讨论】:
-
您正在打印打印功能的结果。更改行 G = (x for x in liste)
-
print 返回 None,所以 G 是 Nones 的生成器,把
print(x)改成 x -
好吧,很愚蠢,我必须同意。谢谢