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

Python中如何基于列表合并连续换行符?

解决Python合并列表中连续换行符的问题

问题分析

你的需求是合并列表中连续的\r\n换行符(将多个连续换行符替换为一个),但现有代码存在以下问题:

  • test.index(sentence)会返回列表中第一个匹配\r\n的索引,而非当前遍历到的索引,导致后续处理错位
  • 遍历列表时,遇到\r\n处理后,后续循环仍会重复处理已合并过的换行符
  • 变量逻辑错误,导致合并后的换行符数量不符合预期
  • 未处理列表末尾为\r\n的边界情况,可能引发索引越界

修复后的代码

下面是实现需求的正确函数,通过跟踪状态来处理连续换行,避免重复添加:

def merge_consecutive_newlines(test_list):
    final_list = []
    in_newline = False
    for item in test_list:
        if item == "\r\n":
            if not in_newline:
                final_list.append(item)
                in_newline = True
        else:
            final_list.append(item)
            in_newline = False
    return final_list

代码说明

  • 用in_newline标记是否处于连续换行状态:
    • 遇到第一个\r\n时,将其加入结果列表并标记状态
    • 后续连续的\r\n会被直接跳过,直到遇到非换行符时重置状态
  • 全程无需索引操作,避免了索引错位问题,同时兼容列表开头、结尾为换行符的边界场景

示例用法

假设输入列表为:

test = ["第一行内容", "\r\n", "\r\n", "第二行内容", "\r\n", "第三行内容"]

调用函数后输出:

["第一行内容", "\r\n", "第二行内容", "\r\n", "第三行内容"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:18:38