在 Python 中跳出嵌套循环的 5 种方法(5 Ways To Break Out of Nested Loops in Python)
文章目录
在 Python 中跳出嵌套循环的 5 种方法(5 Ways To Break Out of Nested Loops in Python)
1. 添加标志变量 Add a Flag Variable
2. 抛出异常 Raise an Exception
3. 再次检查相同条件 Check the Same Condition Again
4. 使用 For-Else 语法 Use the For-Else Syntax
5. 将其放入函数中 Put It Into a Function
最终想法: 避免嵌套循环 Avoid Nested Loops
Conclusion 结论
我们都知道,Python 是一种优雅的编程语言。但任何事物都有弱点。有时,Python 并不那么优雅。
例如,当我们需要跳出嵌套循环时如下:
for a in list_a:
for b in list_b:
if condition(a,b):
break
break 关键字keyword只能帮助我们跳出最内层的循环inner-most loop。我们能直接同时跳出两个嵌套循环two nested loops吗?Python 中是否有一些内置关键字built-in keywords或技巧tricks?
遗憾的是,该操作没有内置支持no built-in support。
俗话说:“比较是快乐的小偷comparison is the thief of joy”。Python 做不到这一点,但其他语言可以,比如 PHP:
foreach ($a_list as $a)
{
foreach ($b_list as $b)
{
if (condition($a, $b))
{
break 2; //break out of 2 loops
}
}
}
在 PHP 中, break 关键字接受一个可选的数字,该数字决定了要跳出多少个嵌套循环nested loops。默认值为 1 ,表示跳出最内层的循环inner-most loop。
这是一个非常简洁明了的解决方案。PHP 在这里确实更加优雅。
但这并不意味着我们必须现在就开始学习 PHP。因为 Python 非常灵活,我们有很多其他方法可以在没有语法支持的情况下获得相同的结果。
本文将介绍 Python 中跳出嵌套循环break out of nested loops的 5 种方法。最后,它还会提到如何在可能的情况下避免嵌套循环问题。希望您在阅读后能重拾对 Python 的信心。
1. 添加标志变量 Add a Flag Variable
这是一个有效的解决方案effective solution。我们定义一个变量variable,并将其作为标志flag。下面我们来看一个简单的例子:
# add a flag variable
break_out_flag = False
for i in range(5):
for j