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

如何从Python字符串列表中移除相似重复项?

解决字符串列表移除相似重复项的问题

问题分析

你现有代码用set只能移除完全重复的字符串(比如重复的"shirt"),但无法处理包含相同核心词的相似项(比如"shirt len"、"pant cotton"这类包含"shirt"或"pant"的长字符串)。目标是保留核心基础词:shirt、pant、watch。

解决方案

核心思路是先保留最短的核心词,再过滤掉所有包含这些核心词的长字符串:

l = ["shirt", "shirt", "shirt len", "pant", "pant cotton", "len pant", "watch"]

# 1. 先移除完全重复项
unique_items = list(set(l))
# 2. 按字符串长度升序排序,让短的核心词优先处理
sorted_items = sorted(unique_items, key=lambda x: len(x))

result = []
for item in sorted_items:
    # 检查当前字符串是否不包含已保留的核心词,是则加入结果
    if not any(core_word in item for core_word in result):
        result.append(item)

print(result)
# 输出:['pant', 'shirt', 'watch']

代码说明

  • 第一步用set去完全重复,和你原来的逻辑一致;
  • 第二步按长度排序,确保短的核心词(比如"pant"、"shirt")先被处理加入结果;
  • 遍历过程中,跳过所有包含已保留核心词的字符串(比如"shirt len"包含已保留的"shirt",直接跳过);
  • 最后得到的结果就是所有不包含其他核心词的基础项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:10:24