Python:合并含特定换行符的数组元素并移除该换行符
解决方案
针对你遇到的问题,这里提供两种Python实现方案,适合新手理解和使用:
基础版(处理所有带换行符的元素合并)
如果你的场景中,所有带\n的元素都需要和下一个元素合并,直接用下面的代码:
array = ['I am a markdown file. I have l', 'inks contained in me that are ', 'broken like this:[](www.brok\n','enlink.org). This means that a', 'newline is contained in the li', 'nk and the link does not work.'] result = [] i = 0 total_items = len(array) while i < total_items: current_line = array[i] # 检查当前行是否包含换行符 if '\n' in current_line: # 移除换行符,拼接下一行 merged_line = current_line.replace('\n', '') + array[i+1] result.append(merged_line) # 跳过下一行,因为已经合并处理 i += 2 else: result.append(current_line) i += 1 # 打印处理后的结果 for line in result: print(line) # 如果需要合并成完整文本,执行下面的代码 # full_text = ''.join(result) # print(full_text)
运行后输出的处理结果:
I am a markdown file. I have l inks contained in me that are broken like this:[](www.brokenlink.org). This means that a newline is contained in the li nk and the link does not work.
精准版(仅处理链接内的换行符)
如果需要只合并链接URL中的换行(避免误合并其他带\n的元素),可以通过判断链接的括号是否未闭合来实现:
array = ['I am a markdown file. I have l', 'inks contained in me that are ', 'broken like this:[](www.brok\n','enlink.org). This means that a', 'newline is contained in the li', 'nk and the link does not work.'] result = [] i = 0 total_items = len(array) while i < total_items: current_line = array[i] # 统计当前行的左右括号数量 open_brackets = current_line.count('(') close_brackets = current_line.count(')') # 判断:包含换行符,且左括号多于右括号(说明链接未闭合) if '\n' in current_line and open_brackets > close_brackets: merged_line = current_line.replace('\n', '') + array[i+1] result.append(merged_line) i += 2 else: result.append(current_line) i += 1 # 输出处理后的完整文本 print(''.join(result))
这段代码会精准识别出链接未闭合的行,只合并这类带换行符的元素,避免误操作其他内容。
内容的提问来源于stack exchange,提问作者pixelatinate
相关产品推荐
相关产品推荐

