我有一个清单"停用词"包含[" apple"," banana"," pear","'"," \&# 34;"。]
我有另一个包含句子的变量:"句子"。
我想要一种简单的方法来检查字符串"句子"包含列表中的任何单词" stopwords"如果是,则抛出错误而不使用for循环。
答案 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
设置模式需要一些迭代,但匹配模式时则不需要。请注意,此重新模式还可确保实际单词本身存在,而不是作为较大单词的子字符串。