从for循环中断

时间:2010-09-01 21:03:32

标签: python breakpoints

这是我的代码:

def detLoser(frag, a):
    word = frag + a

    if word in wordlist:
        lost = True
    else:
        for words in wordlist:
            if words[:len(word) == word:
                return #I want this to break out.

            else:   
                lost = True

我有回报的地方,我已经尝试过返回和休息,并且都给我错误。两者都给我以下错误:SyntaxError:语法无效。有任何想法吗?处理这个问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:6)

您已从列表切片中省略了]。但无论如何,代码试图实现的是什么?

foo[ : len( foo ) ] == foo

永远!

我认为这不是完整的代码 - 如果是这样,wordlist定义在哪里? (它是一个列表吗? - 测试一个集合的包含速度要快得多。)

答案 1 :(得分:2)

def detLoser(frag, a):

    word = frag + a

    if word in wordlist:
        lost = True
    else:
        for words in wordlist:
            if word.startswith(words):
                return #I want this to break out.
            else:   
                lost = True

您可以使用anyall重写for循环,例如。 (你应该使用集合而不是列表作为wordlist)

def detLoser(frag, a):
    word = frag + a
    return word in wordlist or any(w.startswith(word) for w in wordlist)