如何跳出两层循环

Python 2018-10-08

起步

Python 中如果跳出嵌套的循环?这是大家都会遇到的问题。python 语法并不支持 break n 的语句,break 只能跳出一层循环。

要跳出两层循环,一般的处理方式是,把第二层循环包装成函数,利用函数的返回进行判断并退出。又或者设置个布尔变量来标记循环的结束。

直到我看到 pycon2013 中的一种优雅的处理方式,视频见:https://www.youtube.com/watch?v=EnSu9hHGq5o

跳出两层循环

例子是遍历类似电子表格的二维结构,一种简单的方法是使用两个嵌套循环:第一个循环遍历行,第二个循环遍历列。

026.png

两个循环变量一起可用于访问电子表格中的单元格。

它的方式是利用生成器,将两重循环写成一重循环,然后简单地跳出循环。

027.png

巧妙的使用生成器,将二重性隐藏到一个生成器内部,就可以如你所想的那样组织代码了。对我来说,这就是最佳的解决方案了。


本文由 hongweipeng 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

赏个馒头吧