移除字符串中指定子串的重复实例(保留首次出现)
解决方案
要实现仅保留指定片段的首次出现、移除后续重复该片段的需求,确实没有直接对应的内置函数,可通过以下逻辑手动实现:
- 定位目标片段在字符串中的首次出现位置
- 将原字符串拆分为「首次出现前的内容」「目标片段」「首次出现后的剩余内容」三部分
- 移除剩余内容中所有的目标片段
- 拼接三部分内容得到最终结果
Python 实现代码
def keep_first_fragment(string, fragment): first_pos = string.find(fragment) if first_pos == -1: return string # 拆分并处理各部分 prefix = string[:first_pos] target = fragment suffix = string[first_pos + len(fragment):].replace(fragment, "") return prefix + target + suffix # 测试示例 string = "123456789123456789" fragment = "123" output = keep_first_fragment(string, fragment) print(output) # 输出: 123456789456789
代码说明
- 用
string.find(fragment)快速定位片段首次出现的位置,若片段不存在则直接返回原字符串 - 对首次出现后的剩余内容,使用
replace批量移除所有重复的目标片段 - 拼接各部分后得到仅保留目标片段首次出现的结果
内容的提问来源于stack exchange,提问作者Lerck
相关产品推荐
相关产品推荐

