我想知道当我将生成器函数的结果传递给python的enumerate()时会发生什么。示例:
def veryBigHello():
i = 0
while i < 10000000:
i += 1
yield "hello"
numbered = enumerate(veryBigHello())
for i, word in numbered:
print i, word
枚举是缓慢地迭代,还是将所有内容都放入第一个枚举?我99.999%确信它是懒惰的,所以我能把它和生成器函数一模一样地对待吗,或者我需要注意什么?
Tags:
由于可以调用此函数而不必获取内存异常,因此它确实很懒
比之前的建议更容易说出来:
如果枚举不执行延迟计算,它将返回
[(0,'a'), (1,'b'), (2,'c')]
或一些(几乎)等效值。当然,enumerate只是一个奇特的生成器:
太懒了。很容易证明事实如此:
相关问题 更多 >
编程相关推荐