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

Python中如何用正则移除字符串列表重复句子且不删除重复词

解决方案

原有方案按单词拆分后调用OrderedDict去重,本质是对单个词汇去重,自然会误删句内的重复单词,不符合仅移除重复整句的需求。以下两种实现都可以满足要求:

方案1:正则快速替换(适用于整段内容完全重复的场景)

你给出的示例中重复内容均为整段完全重复两次,可直接用正则捕获重复片段替换为单次内容,代码最简单:

import pandas as pd

df['cleaned'] = df['Lines'].str.replace(r'^(.+?)\1+$', r'\1', regex=True)

正则逻辑说明:

  • 用非贪婪模式捕获从开头开始的任意内容作为分组1
  • 匹配后续完全重复分组1的内容直到字符串结尾
  • 替换为分组1的内容,直接移除重复部分

方案2:按句子拆分去重(适用于任意位置存在重复句子的场景)

如果重复句子不是连续整段重复,可先按句子边界拆分后按顺序去重,再拼接回完整字符串:

import re
import pandas as pd

def deduplicate_sentences(text):
    # 以句号+任意空白作为句子分隔符拆分,保留句号不丢失
    sentences = [s.strip() for s in re.split(r'(?<=\.)\s*', text) if s.strip()]
    seen = set()
    unique_sens = []
    for sen in sentences:
        if sen not in seen:
            seen.add(sen)
            unique_sens.append(sen)
    return ' '.join(unique_sens)

df['cleaned'] = df['Lines'].apply(deduplicate_sentences)

两种方案运行后得到的结果都和你期望的输出一致,不会删除句内的重复单词。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:09:03