我想知道当我将生成器函数的结果传递给 python 的 enumerate() 时会发生什么。示例:
def veryBigHello():
i = 0
while i < 10000000:
i += 1
yield "hello"
numbered = enumerate(veryBigHello())
for i, word in numbered:
print i, word
枚举是懒惰地迭代,还是将所有内容都放入<enumerate object>
第一的?我 99.999% 确定它是惰性的,所以我可以将它与生成器函数完全相同,还是我需要注意什么?
最佳答案
懒惰。证明是这样的相当容易:
>>> def abc():
... letters = ['a','b','c']
... for letter in letters:
... print letter
... yield letter
...
>>> numbered = enumerate(abc())
>>> for i, word in numbered:
... print i, word
...
a
0 a
b
1 b
c
2 c
关于python - python中的枚举是懒惰的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3396279/