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

如何移除数组字符串元素中换行符分隔的第二个数值

解决方案

这个需求完全可以用正则实现,也可以用更简单的字符串拆分拼接方法实现,两种方案如下:

正则实现方案

匹配逻辑为定位字符串开头到第二个换行符之间的第二个数值,直接删除该部分内容即可,代码示例:

import re

line = ['1.60\n2.50\n2.15', '1.80\n2.20\n1.90']
# 正则替换处理
result = [re.sub(r'^(\d+\.\d+)\n\d+\.\d+\n', r'\1\n', item) for item in line]
print(result)
# 输出:['1.60\n2.15', '1.80\n1.90']

正则规则说明:

  • ^(\d+\.\d+):匹配字符串开头的第一个数值,存入第一个捕获组
  • \n\d+\.\d+\n:匹配第一个换行符、第二个数值、第二个换行符
  • 替换时仅保留第一个捕获组加换行,即可剔除第二个数值的内容

如果你的数值格式不固定(比如存在整数、负数等情况),可以用更通用的正则写法:

result = [re.sub(r'^([^\n]+)\n[^\n]+\n', r'\1\n', item) for item in line]

[^\n]+会匹配所有非换行符的内容,不受数值格式限制。

字符串拆分实现(split方法可行版本)

之前用split方法没成功大概率是拼接逻辑处理有误,正确写法如下:

line = ['1.60\n2.50\n2.15', '1.80\n2.20\n1.90']
result = ['\n'.join(item.split('\n')[::2]) for item in line]

按换行拆分每个字符串会得到长度为3的列表,[::2]取索引为0、2的元素(也就是第一个和第三个数值),再用换行符拼接即可得到目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:15:08