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

如何分别对嵌套列表元素求和,及实现字典中嵌套列表按位求和?

嘿,这两个问题都是关于嵌套序列的元素求和,我来给你一步步拆解解决方法:

问题1:嵌套列表对应元素求和合并为单个列表

要实现这个需求,Python里的zip(*...)是个神器!它能把嵌套列表的「行」转成「列」,之后我们只需要对每一列求和就行。举个实际例子:

# 示例嵌套列表
nested_list = [[0,1,0,1],[1,1,0,1],[0,1,1,1],[1,0,0,1]]
# 对对应位置元素求和
result = [sum(col) for col in zip(*nested_list)]
print(result)  # 输出: [2, 3, 1, 4]

简单解释下:

  • zip(*nested_list)会把原嵌套列表中每个子列表的对应位置元素打包成元组(比如第一个元组是(0,1,0,1),对应原列表每个子列表的第一个元素)
  • 再通过列表推导式对每个元组求和,就得到了所有对应位置元素的总和列表
问题2:处理嵌套列表字典,每个键对应子列表元素求和后的列表

这个需求其实是问题1的延伸——只需要遍历字典的每个键值对,对每个值(嵌套列表)执行问题1的操作,再把结果存回字典即可。用字典推导式最简洁:

my_dict = {'r1': [[0,1,0,1],[1,1,0,1],[0,1,1,1],[1,0,0,1]] , 'r2' : [[1,0,0,0],[1,1,0,0],[0,1,1,0],[1,0,0,1]]}

# 生成新的结果字典
result_dict = {key: [sum(col) for col in zip(*value)] for key, value in my_dict.items()}
print(result_dict)
# 输出: {'r1': [2, 3, 1, 4], 'r2': [3, 2, 1, 1]}

如果你想直接修改原字典,也可以用循环实现:

for key, value in my_dict.items():
    my_dict[key] = [sum(col) for col in zip(*value)]
print(my_dict)  # 同样得到期望结果

核心逻辑和问题1一致:通过zip(*value)转置子列表,再对每一列求和,最后把结果和原字典的键绑定即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:12:35