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

Python处理含括号、百分号的字符串列表提取数值报错如何解决

实现方案

观察你的输入列表结构非常规律:首个元素RX为无效值,后续元素每2个为一组,每组第一个元素末尾带(,存储的就是你需要提取的数值。你之前报错大概率是误将带百分号的元素也纳入了整数转换范围,或者没有提前清理字符串中的括号字符。

方法1:按固定索引提取(效率最高,适合结构稳定的场景)

直接从索引1开始按步长2取元素,去掉末尾的(后转整数即可:

x = ['RX', '0(', '0%)', '2(', '0%)', '154018(', '99%)', '0(', '0%)', '0(', '0%)', '0(', '0%)']
y = [int(item.rstrip('(')) for item in x[1::2]]
print(y)
# 输出:[0, 2, 154018, 0, 0, 0]

方法2:正则提取(容错性更高,适合结构有波动的场景)

如果后续列表元素的括号位置可能变化,可以用正则匹配每个元素中的纯数字部分:

import re
x = ['RX', '0(', '0%)', '2(', '0%)', '154018(', '99%)', '0(', '0%)', '0(', '0%)', '0(', '0%)']
y = []
for s in x[1:]:
    # 匹配字符串开头的连续数字
    match_res = re.match(r'\d+', s)
    if match_res:
        y.append(int(match_res.group()))
print(y)
# 输出:[0, 2, 154018, 0, 0, 0]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:36:03