这是我的代码:
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:语法无效。有任何想法吗?处理这个问题的最佳方法是什么?
答案 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
您可以使用any
或all
重写for循环,例如。 (你应该使用集合而不是列表作为wordlist)
def detLoser(frag, a):
word = frag + a
return word in wordlist or any(w.startswith(word) for w in wordlist)