Python如何查找并删除句子中属于指定词列表的完整匹配词汇
问题原因
你的原始代码存在两处核心问题:
- 变量名拼写错误:代码中引用的
check_Words和你定义的check_words大小写不匹配,运行时会直接抛出NameError - 逻辑错误:Python的
str.replace()是全局子串替换,不会判断是不是独立完整的单词,因此会把high里包含的hi子串也误删掉;同时直接在原字符串上循环做替换也容易出现重复替换的异常问题。
正确实现方案
最简洁且不会误删子串的方式是拆分句子为独立单词列表,过滤掉需要删除的词汇后再重新拼接为句子:
sentence = 'hi how is the high school' check_words = [ 'me', 'you', 'hi', ] # 拆分后过滤目标单词,再用空格拼接 sentence = ' '.join([word for word in sentence.split() if word not in check_words])
运行后sentence的结果就是你需要的'how is the high school'。
如果你的实际场景中单词会带标点(比如hi,、hi!),可以先对每个单词做标点去除后再判断,不需要匹配标点的场景下上面的代码完全可用。
内容的提问来源于stack exchange,提问作者miladjurablu
相关产品推荐
相关产品推荐

