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

Python中移除字符串的下划线及数字前导零的高效方法

Python处理ABC_###格式字符串的高效方法

这里有两种高效且简洁的实现方式,完全满足你的需求:

方法一:分割+类型转换

利用字符串分割和整数自动去前导零的特性,代码简洁且高效:

# 示例输入列表
str_list = ["ABC_004", "XYZ_090", "LMN_909", "PQR_012"]
# 列表推导式批量处理
processed_list = [f"{prefix} {int(num_part)}" for prefix, num_part in (s.split('_') for s in str_list)]

运行后processed_list的结果就是['ABC 4', 'XYZ 90', 'LMN 909', 'PQR 12']。
原理很简单:split('_')把字符串拆成前缀和带前导零的数字部分,int(num_part)会自动去掉前导零,再用f-string拼接成空格分隔的格式。这种方法不需要额外导入模块,内置操作的效率很高。

方法二:正则表达式替换

如果需要更灵活的匹配(比如后续格式有小调整),可以用预编译的正则表达式批量替换:

import re

# 预编译正则,匹配前缀、下划线、任意数量前导零+有效数字
pattern = re.compile(r'^(.*)_0*(\d+)$')
str_list = ["ABC_004", "XYZ_090", "LMN_909", "PQR_012"]
processed_list = [pattern.sub(r'\1 \2', s) for s in str_list]

正则里(.*)匹配前缀部分,_0*(\d+)匹配下划线、任意个前导零和后面的有效数字,替换时把这两部分用空格拼接即可。预编译正则后处理大量字符串时效率会更高。

两种方法都能快速处理你的需求,根据自己的习惯选就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:05:26