双重打破嵌套循环

时间:2013-03-02 12:34:19

标签: python python-3.x primes

我已经看到了许多不同的方法可以同时打破两个嵌套循环,但对于我的代码来说,最快和最简单的是什么?

primes = [2]
for a in range(3, 500, 2):
    for b in range(2, int(a ** 0.5 + 0.5)):
        if a % b != 0:
            primes.append(a)
        if a % b == 0:
            [x for x in primes if x != a]
            # double break

3 个答案:

答案 0 :(得分:3)

将循环放在函数中并使用return关键字:

def func(primes):
    for a in range(3, 500, 2):
        for b in range(2, int(a ** 0.5 + 0.5)):
            if a % b != 0:
                primes.append(a)
            if a % b == 0:
                [x for x in primes if x != a]
                return

primes = [2]
func(primes)

当程序员编写模块化代码时,这往往是一件好事。

答案 1 :(得分:0)

将双循环重构为函数,并使用return来突破。

答案 2 :(得分:0)

如果您不想使用某个功能,可以使用变量。这是flag

  primes = [2]
    flag = 0
    for a in range(3, 500, 2):
        for b in range(2, int(a ** 0.5 + 0.5)):
            if a % b != 0:
                primes.append(a)
            if a % b == 0:
                [x for x in primes if x != a]
                flag = 1
                break
        if flag:
            break