简单的Python生成器使用for循环跳过步骤

为了理解生成器,我写道:

def counter():
    n = 1
    while n <= 10:
        yield n
        n += 1

如果我再手动输入

c = counter()

…之后反复

print c.next()

我得到1,2,3,依此类推.但是如果我跑步

for i in c:
    print c.next()

我得到2,4,6,8 …我凝视了太久了.我想念什么?

解决方法:

.next()在您刚刚创建的生成器上进行迭代,就像您做的一样

for i in c 

这就是为什么第二种方法中只有对号

只需输入:

for i in c:
    print i
上一篇:PHP:数组$_POST循环问题


下一篇:在目录内迭代以使用python压缩文件