我想在字符串中检测到一个粗俗的单词。我有一个存储在.txt
文件中的不雅词汇数据库。这个文件放在我的.py
文件中。
示例坏词:
words = "word, something, dog, cat ...."
输入数据字符串例如:
input = "xxxxdogxxx" or "dogxxxx" or "xxxdog" or "dog" "ok_word" # xxx == any word
我希望,当输入包含单词return中的单词时返回False
def check(input):
word = "something, something, ..."
x = ???? # I do not know how to do it, probably using regular expressions: re.match?
if x:
return False
else:
return True
答案 0 :(得分:2)
你实际上并不需要Regex。您可以使用all
和generator expression:
def check(input):
return all(x not in input for x in bad_words)
要将您的字词串添加到列表中,请使用str.split
:
>>> words = "word, something, dog, cat"
>>> words.split(', ')
['word', 'something', 'dog', 'cat']
>>>
您可能还想在列表中调用set()
以改善查找时间。集合与O(1)
和in
运算符具有not in
(常数)复杂度,而列表具有O(n)
(线性)。因此,在集合中查找事物比在列表中查找更快。