我有下面这样的句子
mainsentence="My words aren't available give didn't give apple and did happening me"
stopwords=['are','did','word', 'able','give','happen']
如果任何单词与中间的单词匹配,则要删除(例如:“word”应与“words”匹配并删除它,“did”应与“did”匹配并删除它,“able”应删除“available”,因为“able”单词位于“available”中
finalsentence="My apple and me"
尝试以下代码,但
querywords = mainsentence.split()
resultwords = [word for word in querywords if word.lower() not in stopwords]
result = ' '.join(resultwords)
print(result)
但它只适用于精确匹配。你知道吗
请帮帮我。你知道吗
对于这类问题,可以使用正则表达式的强大功能。你知道吗
你可以得到这样的匹配词:
您也可以替换它们:
所以最后的答案是:
您可以执行以下操作:
编辑:这不需要双向检查,只需查看word是否包含stopword
EDIT2:更新了结果和更新的问题参数
不区分大小写的版本:
下面的代码将满足您在问题中提出的要求,但它不太可能是您想要的结果。 代码的一般基础结构应该是正确的,但是您可能希望更改部分匹配的条件(
stopword in testword
):或者,使用列表理解和
all()
(any()
可以等价地使用):相关问题 更多 >
编程相关推荐