每次迭代将控制转移到最外层循环 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