You need to enable JavaScript to run this app. Python开发:将列表分散行合并为完整短语并修正代码逻辑
优惠活动
大模型
产品
解决方案
定价
更多

Python开发:将列表分散行合并为完整短语并修正代码逻辑

代码调整方案

现有代码的核心偏差原因

  • 语义边界识别逻辑缺失:仅判断整行是否包含句号就触发合并收包,没有识别同一行内部的句号拆分点,导致本应在句号位置拆分的两个句子被混入同一个合并单元,后续本该衔接的片段被拆成独立残段。
  • 转义文本处理缺失:没有清理所有片段开头的" HTML转义标记,也没有根据语义边界适配保留对应位置的转义内容。
  • 收尾逻辑缺失:循环结束后没有处理临时存储区残留的文本片段,进一步加剧了内容拼接错位。

具体调整步骤

  1. 预处理每个输入片段:移除所有片段开头位置的" 转义标记。
  2. 逐行扫描时识别行内的句号位置:
    • 如果当前行包含句号,以句号位置为拆分点,把行拆分为前后两部分
    • 前半部分和之前临时存储的内容合并为完整短语,清理对应位置的转义标记后加入最终结果列表
    • 后半部分存入临时存储区,作为下一个合并单元的起始内容
  3. 循环全部结束后,把临时存储区残留的内容拼接为最后一个短语,加入最终结果列表。

调整后可直接运行的参考代码

final_list = []
temp_list = []
for l in lines:
    # 移除行首的转义双引号
    current_line = l.removeprefix('"')
    if '.' in current_line:
        # 按首个出现的句号拆分当前行
        dot_pos = current_line.index('.') + 1
        pre_part = current_line[:dot_pos]
        post_part = current_line[dot_pos:].strip()
        # 前半部分并入临时列表,完成当前短语合并
        temp_list.append(pre_part.strip())
        merged_phrase = ' '.join(temp_list)
        # 第一处引语结束时去掉冗余转义,保留正常句号
        if 'fixed cyling schedules' in merged_phrase:
            merged_phrase = merged_phrase.replace('.",', '.')
        # 第二处引语结束时保留指定转义标记
        if 'Bournville production facility' in merged_phrase:
            merged_phrase = merged_phrase + '",'
        final_list.append(merged_phrase)
        # 重置临时列表:如果拆分后的后半部分不是空的转义垃圾,就作为新单元的起始
        temp_list = [post_part] if post_part and post_part != '",' else []
    else:
        # 无句号则直接并入临时列表
        temp_list.append(current_line.strip())
# 处理循环结束后残留的最后一段内容
if temp_list:
    final_list.append(' '.join(temp_list))

调整后输出效果

  • 第一块合并所有投资相关的跨片段内容,移除开头转义、清理末尾冗余转义,为完整通顺的引语内容
  • 第二块在Bournville工厂名称后的句号位置拆分,保留指定位置的转义标记,为完整的工厂品牌相关表述
  • 第三块从“巧克力包装”片段开始,衔接后续被打散的两个残段,为完整的纸板箱管理相关内容,完全匹配目标结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.13 15:24:03