찾다

 >  Q&A  >  본문

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

1

2

3

4

5

6

7

8

9

10

11

isbreak=False

for 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

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

高洛峰高洛峰3064일 전691

모든 응답(1)나는 대답할 것이다

  • 三叔

    三叔2016-10-22 16:45:44

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

    1

    2

    3

    4

    5

    6

    7

    8

    import itertools

     

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

     

    for i, ii in itertools.product(lst, range(5)):

        print i, ii

        if ii==2:

            break

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    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

    회신하다
    0
  • 취소회신하다