Check substring match of a word in a list of words

安稳与你 提交于 2019-12-19 04:08:17

问题


I want to check if a word is in a list of words.

word = "with"
word_list = ["without", "bla", "foo", "bar"]

I tried if word in set(list), but it is not yielding the wanted result due to the fact in is matching string rather than item. That is to say, "with" is a match in any of the words in the word_list but still if "with" in set(list) will say True.

What is a simpler way for doing this check than manually iterate over the list?


回答1:


You could do:

found = any(word in item for item in wordlist)

It checks each word for a match and returns true if any are matches




回答2:


in is working as expected for an exact match:

>>> word = "with"
>>> mylist = ["without", "bla", "foo", "bar"]
>>> word in mylist
False
>>> 

You can also use:

milist.index(myword)  # gives error if your word is not in the list (use in a try/except)

or

milist.count(myword)  # gives a number > 0 if the word is in the list.

However, if you are looking for a substring, then:

for item in mylist:
    if word in item:     
        print 'found'
        break

btw, dont use list for the name of a variable




回答3:


You could also create a single search string by concatenating all of the words in word_list into a single string:

word = "with" 
word_list = ' '.join(["without", "bla", "foo", "bar"])

Then a simple in test will do the job:

return word in word_list 


来源:https://stackoverflow.com/questions/8275417/check-substring-match-of-a-word-in-a-list-of-words

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!