我有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
答案 0 :(得分:-1)
我将添加一个布尔值以退出第二个布尔值:
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))]