如何从数组中移除元素内每行开头的计数数字
实现方法
方法1:基于正则表达式实现(推荐)
利用正则匹配每行开头的数字序号和后续空格,开启多行匹配模式批量替换即可,代码如下:
import re # 原始数组 array = ['1 1.60\n2 3.90\n3 5.40', '1 3.45\n2 3.10\n3 2.35', '1 4.70\n2 3.25\n3 1.85', '1 2.20\n2 3.00\n3 3.20'] # 处理数组 processed_array = [re.sub(r'^\d+\s', '', item, flags=re.MULTILINE) for item in array]
代码说明:
- 正则规则
^\d+\s:匹配行首位置的1个及以上数字+1个空白字符 re.MULTILINE标志:让^可以匹配每一行的开头,而非仅整个字符串的开头- 最终得到的
processed_array就是你需要的目标结果 - 如果实际场景中序号和数值之间可能存在多个空格,把正则规则调整为
r'^\d+\s+'即可兼容
方法2:无正则的纯字符串操作实现
如果不想引入正则模块,也可以通过分割每行后截取数值部分实现:
# 原始数组 array = ['1 1.60\n2 3.90\n3 5.40', '1 3.45\n2 3.10\n3 2.35', '1 4.70\n2 3.25\n3 1.85', '1 2.20\n2 3.00\n3 3.20'] # 处理数组 processed_array = [] for s in array: lines = s.splitlines() new_lines = [line.split(maxsplit=1)[1] for line in lines] processed_array.append('\n'.join(new_lines))
代码说明:
- 先把每个字符串按换行符拆成单行列表
- 每一行按空格最多分割1次,取分割后的第二部分就是数值内容
- 最后把处理后的单行用换行符拼接回字符串即可,该方法天然适配序号和数值之间多空格的场景
内容的提问来源于stack exchange,提问作者MareS992
相关产品推荐
相关产品推荐

