Python:生成器失败

标签 python generator

def sp():
    i = 0
    while True:
        for j in range(i):
            yield(j)
        i+=1

此生成器应该产生 (0, i)范围 中的所有整数,但它一直返回 0 每次调用 next()。为什么?

谢谢。

最佳答案

不,它没有。这是输出:

>>> s=sp()
>>> s
<generator object sp at 0x102d1c690>
>>> s.next()
0
>>> s.next()
0
>>> s.next()
1
>>> s.next()
0
>>> s.next()
1
>>> s.next()
2
>>> s.next()
0
>>> s.next()
1
>>> s.next()
2
>>> s.next()
3
>>> s.next()
0
>>> s.next()
1
>>> s.next()
2
>>> s.next()
3
>>> s.next()
4

这正是您所期望的。每次,您从 0 开始并转到 i 的任何位置,然后再次从 0 开始直到 i 的下一个值。

关于Python:生成器失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22385747/

相关文章:

python - 属性错误: 'DataFrame' object has no attribute 'target_names' - scikit

javascript - Observables (Rx.js) 与 ES2015 生成器相比如何?

python - 如何将python文件转为exe文件,从而可以屏蔽代码

c - 随机数发生器 C

python - 在 python 生成器理解中使用状态?

python - 如何使用具有多个输入的 keras 生成序列数据?

python - 为什么生成器更快?

python - 如何根据给定的行值保留列

Python:使用一个参数来处理数字和字符串之间的选择?

python - DateTimeProperty 在 Google App Engine 中设置为日期时间时出错