当内循环满足特定条件时,如何退出 2 个循环并继续第一个循环?



我有3个循环。我想当最里面的循环满足特定条件时,退出 2 个内循环并继续外循环。

for i in range(0,3):
for j in range(0,4):
for k in range(0,5):
if k == 3:
break
print(i,j,k)
My output is :
0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2
1 0 0
1 0 1
1 0 2
1 1 0
1 1 1
1 1 2
but I would like to get to:
0 0 0
0 0 1
0 0 2
1 0 0
1 0 1
1 0 2

我会添加一个布尔值以退出第二个布尔值:

for i in range(0,2):  # change the end of range in order to have the wanted print.
exit_second_loop = False
for j in range(0,4):
if exit_second_loop:
break
for k in range(0,5):
if k == 3:
exit_second_loop = True
break
print(i,j,k)

这将打印:

0 0 0
0 0 1
0 0 2
1 0 0
1 0 1
1 0 2

编辑

一个更优雅的解决方案:

j = 0
for i in range(0, 2):
for k in range(0, 3):
print(i, j, k)

使用product的另一种解决方案:

from itertools import product
j = 0
[print(i, j, k) for i, k in product(range(0, 2), range(0, 3))]

最新更新