如何使用python检查字符串是否包含列表中的任何单词?

时间:2014-12-17 01:21:43

标签: python

我有一个清单"停用词"包含[" apple"," banana"," pear","'"," \&# 34;"。]

我有另一个包含句子的变量:"句子"。

我想要一种简单的方法来检查字符串"句子"包含列表中的任何单词" stopwords"如果是,则抛出错误而不使用for循环。

2 个答案:

答案 0 :(得分:-1)

stopwords=["apple", "banana", "pear"]
sentence="sentence"
for item in stopwords:
    if item not in sentence:
        continue
    else:
    print("error here")

确保您了解传递和继续之间的区别。

我不相信没有for循环或while循环的方法可以做到这一点

编辑:

或者你可以做到

if item in sentence: print("error here")

如果你愿意,可以节省空间。

正如安德森格林所指出的,如果你想让程序停止错误,请执行

raise Exception("error here")

答案 1 :(得分:-1)

使用正则表达式。

import re

stopwords = ["apple", "banana", "pear"]
pattern = re.compile('|'.join(r'\b{}\b'.format(word) for word in stopwords))

>>> sentence = 'one apple for you'
>>> pattern.search(sentence) != None
True

>>> sentence = 'one crabapple each'
>>> pattern.search(sentence) != None
False

>>> sentence = 'ten apples more'
>>> pattern.search(sentence) != None
False

设置模式需要一些迭代,但匹配模式时则不需要。请注意,此重新模式还可确保实际单词本身存在,而不是作为较大单词的子字符串。