Python中断多重循环的几种思路
转自: https://www.cnblogs.com/cuijianxin/p/6611751.htmlI. 跳出单循环 for i in range(10): if i > 5: print i break 然而,我们有时候会需要跳出多重循环,而break只能够跳出一层循环,比如 for i in range(10): for j in range(10): if i+j > 5: print i,j break 这样的代码并非说找到一组i+j > 5就停止,而是连续找到10组,因为break只跳出了for j in range(10)这一重循环。那么,怎么才能跳出多重呢?在此记录备忘一下。 II. 跳出多重循环 当然最常用的思路是使用变量标记法 def f(): flag = 0 for i in range(10): for j in range(i): if i+j>5: print i,j flag = 1 break if flag == 1: break if __name__ == "__main__": f() 写成函数 def work(): for i in range(10): for j in range(10): if i+j > 5: return i,j print work() 利用笛卡尔积 from itertools import product for i,j in product(range(10),range(10)): if i+j > 5: print i,j break 利用调试模式 class Found(Exception): pass try: for i in range(10): for j in range(i): #第二重循环跟第一重有关 if i + j > 5: raise Found except Found: print i,j (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |