python一次性跳出双重循环

208 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

遇到的问题

try_list = [[1,2,3],[44,55,66]]
for i in try_list:
    for j in i:
        if j == 2:  # 我们想要匹配到 2 后,立刻终止所有的循环
            print(j)
            break

两个for循环一个二维的列表,在匹配到我们想要的数值之后,虽然break了一下,但是只是退出了里面的for循环,而外面的for循环还会继续遍历下一个列表,这时候可以利用for-else语法

for-else语法

for 临时变量 in 序列:
    重复执行的代码
    ......
else:
    循环正常结束后要执行的代码
如果是break来终止了循环,那么将不执行else下的语句

根据for else语法,我们在外面一层适当加个break即可

try_list = [[1,2,3],[44,55,66]]
for i in try_list:
    for j in i:
        if j == 2:
            print(j)
            break
    else:
        continue
    break  # 如果里面的break生效的话,就会执行到这个break