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

Python含字符串的2D矩阵指定位置元素求和及占比计算方法

Python 2D列表指定列求和及占比计算实现

正确实现代码

直接遍历所有行提取指定下标元素求和即可:

rows = [["SOBs", 60, 80, 70, 75], ["Test1", 60, 50, 60, 65], ["Test2", 40, 30, 40, 45], ["Test3", 45, 90, 80, 85], ["CW", 40, 80, 70, 75]]

# 计算下标1的列总和
sum_col1 = sum(row[1] for row in rows)
# 计算下标2的列总和
sum_col2 = sum(row[2] for row in rows)

# 按示例要求的分母500计算占比,可根据实际业务逻辑修改分母
ratio_col1 = sum_col1 / 500 * 100
ratio_col2 = sum_col2 / 500 * 100

print(f"下标1列总和:{sum_col1},占比:{ratio_col1}%")
print(f"下标2列总和:{sum_col2},占比:{ratio_col2}%")

运行结果

下标1列总和:245,占比:49.0%
下标2列总和:330,占比:66.0%

原错误写法问题说明

  • sum(sum(rows, [2])):sum(rows, [2])的作用是把二维列表全量展平,同时在最前面插入元素2,再对所有元素求和,完全不符合提取指定列的需求
  • print(sum(rows[0][1] + [1][1])):仅取了第一行的下标1元素,同时[1][1]是尝试访问只有1个元素的列表的下标1,会直接抛出索引越界错误,逻辑完全错误

扩展说明

如果占比的分母不是固定值500,而是两列的总和,可修改占比计算逻辑为:

total = sum_col1 + sum_col2
ratio_col1 = sum_col1 / total * 100
ratio_col2 = sum_col2 / total * 100

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:06:03