每次迭代将控制转移到最外层循环 python
Transfer control to outermost loop python for each iteration
考虑代码
for i in range(1,3):
print(i)
for j in range(4,7):
print(j)
for k in range(8,10):
print(k)
continue
预期输出是
[1 4 8 9] and [2 5 8 9]
每次迭代
实际是 [1 4 8 9 ],[5 8 9],[6 8 9],[2 4 8 9],[5 8 9],[6 8 9]
您无法使用像这样的简单嵌套 for
循环获得所需的输出。
顺便说一下,continue
语句表示要执行包含它的循环的下一次迭代,跳过块中它下面的任何语句。但是你的 continue
在块的末尾,所以它没有效果。
但即使有类似于 continue
的语句将控制权传回最外层的 for i
循环,它 仍然 不会执行您的操作想要,因为 for j
循环将简单地再次从 4 开始计数。
但是,我们可以通过使用内置 iter
function. We can then use next
创建一个迭代器来实现您的目标,以便在我们需要时从该迭代器中获取每个项目。
it = iter(range(4, 7))
for i in range(1, 3):
print(i, end=' ')
j = next(it)
print(j, end=' ')
for k in range(8, 10):
print(k, end=' ')
print()
输出
1 4 8 9
2 5 8 9
如果我们将第一个语句更改为
for i in range(1, 4):
输出变为
1 4 8 9
2 5 8 9
3 6 8 9
考虑代码
for i in range(1,3):
print(i)
for j in range(4,7):
print(j)
for k in range(8,10):
print(k)
continue
预期输出是
[1 4 8 9] and [2 5 8 9]
每次迭代
实际是 [1 4 8 9 ],[5 8 9],[6 8 9],[2 4 8 9],[5 8 9],[6 8 9]
您无法使用像这样的简单嵌套 for
循环获得所需的输出。
顺便说一下,continue
语句表示要执行包含它的循环的下一次迭代,跳过块中它下面的任何语句。但是你的 continue
在块的末尾,所以它没有效果。
但即使有类似于 continue
的语句将控制权传回最外层的 for i
循环,它 仍然 不会执行您的操作想要,因为 for j
循环将简单地再次从 4 开始计数。
但是,我们可以通过使用内置 iter
function. We can then use next
创建一个迭代器来实现您的目标,以便在我们需要时从该迭代器中获取每个项目。
it = iter(range(4, 7))
for i in range(1, 3):
print(i, end=' ')
j = next(it)
print(j, end=' ')
for k in range(8, 10):
print(k, end=' ')
print()
输出
1 4 8 9
2 5 8 9
如果我们将第一个语句更改为
for i in range(1, 4):
输出变为
1 4 8 9
2 5 8 9
3 6 8 9