python中怎样在多层循环间灵活的跳转?

isbreak=False
for i in ['a','b','c']:
    for ii in range(5):
            print i,ii
            if ii==2:
                print 'ii=2时,内层循环break,同时外层循环break'
                isbreak=True
                break
    if isbreak:
            isbreak=False
            break

除了以上写法,还有什么好的写法呢?
多谢您的回复!

阅读 5.1k
2 个回答

你這個例子似乎可以考慮減少循環即可:

import itertools

lst  = ['a', 'b', 'c']

for i, ii in itertools.product(lst, range(5)):
    print i, ii
    if ii==2:
        break

真要說這種一次跳出多層 loop 的辦法有一個, 利用 exception:

class Found(Exception): pass
try:
    for lst2 in lst1:
        for lst3 in lst2:
            for item in lst3:
                if item=='good':
                    raise Found
except Found:
    pass

我回答過的問題: Python-QA

另种写法,使用 for...else...

for i in ['a','b','c']:
    for ii in range(5):
        print i,ii
        if ii==2:
            print 'ii=2时,内层循环break,同时外层循环break'
            break
    else:
        continue
    break
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题