Python 如果标题中的所有单词都匹配

Python 如果标题中的所有单词都匹配,python,list,python-3.x,matching,word,Python,List,Python 3.x,Matching,Word,使用python3,我有一个单词列表,如: [‘脚’、‘凳子’、‘地毯’] 这些列表的长度从1-6左右不等。我有成千上万的字符串要检查,需要确保标题中有这三个单词。哪里: “脚垫上放着地毯。” 是一个正确的匹配,因为所有的单词都出现在这里,即使它们不符合顺序 我想了很久,我唯一能想到的就是某种迭代,比如: for word in list: if word in title: match! 但这给了我类似于“地毯清洁剂”的结果,这是不正确的。我觉得似乎有某种快捷方式可以做到这一点,但如果不使用

使用python3,我有一个单词列表,如:
[‘脚’、‘凳子’、‘地毯’]

这些列表的长度从1-6左右不等。我有成千上万的字符串要检查,需要确保标题中有这三个单词。哪里:
“脚垫上放着地毯。”
是一个正确的匹配,因为所有的单词都出现在这里,即使它们不符合顺序

我想了很久,我唯一能想到的就是某种迭代,比如:

for word in list: if word in title: match!
但这给了我类似于“地毯清洁剂”的结果,这是不正确的。我觉得似乎有某种快捷方式可以做到这一点,但如果不使用过多的
list()、continue、break
或其他我还不熟悉的方法/术语,我似乎无法找到它。等等。

您可以使用:

或者,使用not和
not in来反转逻辑:

matches = not any(word not in title for word in words)
您可以使用:

或者,使用not和
not in来反转逻辑:

matches = not any(word not in title for word in words)

如果子字符串不匹配,您可能需要拆分。@padraickunningham。同时避免类似
recarped
之类的匹配。很好,谢谢!Nltk的单词标记器可能是一个更好的选项,可以拆分为单词并处理所有标点符号。这里有一个更简单的选项,只需使用普通Python剥离标点符号:如果子字符串不匹配,您可能需要拆分。@PadraicCunningham。同时避免类似
recarped
之类的匹配。很好,谢谢!Nltk的单词标记器可能是一个更好的选项,可以拆分为单词并处理所有标点符号。这里有一个更简单的选项,使用普通Python剥离标点符号:您是否希望
recarped footstool
匹配?您是否希望
recarped footstool
匹配?