Python: for 循环中的下一个
Python: next in for loop
我想使用 next
跳过从生成器返回的一个或多个项目。这是一个简化的示例,旨在每个循环跳过一个项目(在实际使用中,我会测试 n
并根据结果,可能会重复 next()
并且生成器来自我不知道的包t 控制):
def gen():
for i in range(10):
yield i
for g in gen():
n = next(gen())
print(g, n)
我预计结果是
0 1
2 3
等等
相反我得到了
0 0
1 0
等等
我做错了什么?
您每次调用 gen()
时都会创建一个新的生成器。每个新生成器从0开始。
相反,您可以调用它一次并捕获 return 值。
def gen():
for i in range(10):
yield i
x = gen()
for g in x:
n = next(x)
print(g, n)
我想使用 next
跳过从生成器返回的一个或多个项目。这是一个简化的示例,旨在每个循环跳过一个项目(在实际使用中,我会测试 n
并根据结果,可能会重复 next()
并且生成器来自我不知道的包t 控制):
def gen():
for i in range(10):
yield i
for g in gen():
n = next(gen())
print(g, n)
我预计结果是
0 1
2 3
等等
相反我得到了
0 0
1 0
等等
我做错了什么?
您每次调用 gen()
时都会创建一个新的生成器。每个新生成器从0开始。
相反,您可以调用它一次并捕获 return 值。
def gen():
for i in range(10):
yield i
x = gen()
for g in x:
n = next(x)
print(g, n)