If I have a list of words, how can I check if string does not contain any of the words in the list, and efficiently?

filter, loops, python, search, stop-words

Solution

The most imporant improvement is to make stopWords a `set`. This means the lookups will be very fast

stopWords = set(["the", "and", "with", etc...])
" ".join(word for word in msg.split() if word not in stopWords)

If you just want to know if any of the stopWords are in the text

if any(word in stopWords for word in msg.split()):
    ...

Problem

As title says, I have a list of words, Like `stopWords = ["the", "and", "with", etc...]` and I'm receiving text like "Kill the fox and dog". I want the output like "Kill fox dog" very efficiently and fast. How can I do this (I know I can iterate using a for loop, but thats not very efficient)

Original source

Related problems