我想检查某个单词是否在单词列表中。
word = "with"
word_list = ["without", "bla", "foo", "bar"]
我尝试了if word in set(list)
,但由于事实in
匹配字符串而不是项目,因此不会产生想要的结果。也就是说,"with"
与word_list
中的任何字词匹配,但if "with" in set(list)
仍然会True
。
执行此检查的简单方法是手动迭代list
?
答案 0 :(得分:9)
你可以这样做:
found = any(word in item for item in wordlist)
它检查每个单词是否匹配,如果匹配则返回true
答案 1 :(得分:3)
in
正在按预期运行完全匹配:
>>> word = "with"
>>> mylist = ["without", "bla", "foo", "bar"]
>>> word in mylist
False
>>>
您也可以使用:
milist.index(myword) # gives error if your word is not in the list (use in a try/except)
或
milist.count(myword) # gives a number > 0 if the word is in the list.
但是,如果您正在寻找子串,那么:
for item in mylist:
if word in item:
print 'found'
break
顺便说一下,不要使用list
作为变量的名称
答案 2 :(得分:0)
您还可以通过将word_list中的所有单词连接成一个字符串来创建单个搜索字符串:
word = "with"
word_list = ' '.join(["without", "bla", "foo", "bar"])
然后一个简单的in
测试将完成这项工作:
return word in word_list