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

时间:2019-08-28 19:54:20

标签: python

我有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

1 个答案:

答案 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))]