You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何从字符串列表删除指定字符串 修复子串误匹配问题

Python字符串列表精确删除指定词实现

问题复现

原有实现采用子串包含匹配逻辑删除指定词,会误删包含目标子串的正常词汇,原代码如下:

features = ['ar','ar urticaria','urticaria','including','allergic']
rubbish_words = ['including','ar']
words = []
for line in features:
    new_words = ' '.join([word for word in line.split() if not any([zeyda in word for zeyda in rubbish_words])])
    words.append(new_words)
print(words)
  • 原代码实际输出:['', '', '', '', 'allergic']
  • 目标预期输出:['', 'urticaria', 'urticaria', '', 'allergic'](注:原预期描述中urticaria前的空格为笔误,按常规分词清洗逻辑不会残留多余前导空格)

错误原因

原过滤条件使用zeyda in word做子串包含判断:只要垃圾词是当前单词的连续字符片段,就会把整个单词过滤掉。示例中单词urticaria包含字符序列ar,因此被误删,导致结果不符合预期。

修正代码

将子串包含判断改为精确相等匹配,只有拆分出的单词和垃圾词列表中的项完全一致时才执行删除:

features = ['ar','ar urticaria','urticaria','including','allergic']
rubbish_words = ['including','ar']
words = []
for line in features:
    new_words = ' '.join([word for word in line.split() if not any(word == zeyda for zeyda in rubbish_words)])
    words.append(new_words)
print(words)

运行上述代码即可得到符合预期的输出结果,不会再误删包含目标子串的正常词汇。


内容的提问来源于stack exchange,提问作者Ahmed Bk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 03:01:43