You need to enable JavaScript to run this app. 用List Comprehension排除表头州名后二维列表按列求和生成total
优惠活动
大模型
产品
解决方案
定价
更多

用List Comprehension排除表头州名后二维列表按列求和生成total

代码调整说明

你原写法的核心偏差:

  • 求和方向错误:需求是按列累加四个字段的总和,不是按行计算元素和
  • 边界处理缺失:没有跳过顶部表头行,也没有剔除每行开头的州名字符串,直接求和会因为字符串无法做数值运算触发类型错误

方案1:易读遍历实现

手动维护四个累加位,逐行遍历有效数据:

# 初始对应Gas、Air、Food、Party四个字段的累加值
total = [0, 0, 0, 0]
# 切片跳过第0行的表头,从第一行数据开始遍历
for row in statesData[1:]:
    total[0] += row[1]  # 累加Gas值
    total[1] += row[2]  # 累加Air值
    total[2] += row[3]  # 累加Food值
    total[3] += row[4]  # 累加Party值

方案2:紧凑列表推导式

利用zip的列转置特性,一行完成计算:

total = [sum(col) for col in zip(*(row[1:] for row in statesData[1:]))]

执行逻辑拆解:

  • statesData[1:] 切片移除表头行
  • row[1:] 逐行去掉开头的州名字段,仅保留四个可累加的数值
  • zip(*...) 把逐行存储的数值重组成列维度的集合,即所有Gas值为一组、所有Air值为一组,依此类推
  • 对每个列集合做求和,得到的结果顺序完全匹配Gas、Air、Food、Party的字段要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.15 13:36:03