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

如何将数据库输出的字符串数组转为整数并计算各子数组总和

字符串格式数值数组的求和实现方案

核心逻辑

遍历原数组的每个字符串元素,先将字符串解析为整数列表,再对列表内的元素求和,最终将所有求和结果汇总为新数组。

实现代码(Python)

方案1:使用ast模块安全解析(推荐)

ast.literal_eval是Python官方提供的安全解析表达式的方法,仅支持解析Python字面量结构,不会执行任意代码,安全性和兼容性更高:

import ast

# 输入的原始数组
array = ['[3, 43, 3, 3, 5]', '[3, 43, 3, 3, 5]', '[3, 43, 3, 3, 5]', '[3, 43, 3, 3, 5]','[3, 43, 3, 3, 5]', '[3, 43, 3, 3, 5]']
# 列表推导式完成解析+求和
array1 = [sum(ast.literal_eval(item)) for item in array]
# 输出结果:[57, 57, 57, 57, 57, 57]

方案2:纯字符串处理(无依赖)

不需要导入任何模块,直接通过字符串裁切、拆分完成转换,逻辑更直观:

array = ['[3, 43, 3, 3, 5]', '[3, 43, 3, 3, 5]', '[3, 43, 3, 3, 5]', '[3, 43, 3, 3, 5]','[3, 43, 3, 3, 5]', '[3, 43, 3, 3, 5]']
array1 = []
for str_arr in array:
    # 移除首尾方括号,按逗号拆分后去除空格、转整数再求和
    total = sum(int(num.strip()) for num in str_arr.strip('[]').split(','))
    array1.append(total)
# 输出结果:[57, 57, 57, 57, 57, 57]

方案说明

  • 优先选择方案1,容错性更强,即使字符串数组内存在多余空格、换行符也可以正常解析
  • 方案2适合轻量化场景,不需要依赖额外模块,执行效率略高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:51:01