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

Python如何使用map和sum对3维数组内层符合条件的字典键求和

错误原因分析

你的代码报错是因为matrizes[z]取到的二维矩阵的直接遍历对象是行列表(每个元素是存储了5个字典的列表,不是字典本身),直接对列表调用.values()方法自然会触发'list' object has no attribute 'values'的属性错误。

正确实现(仅使用sum、map)

核心实现逻辑:

  1. 用sum(matrices[z], [])把二维行嵌套结构展平为一维的内层字典列表,利用sum的第二个参数作为初始空列表的特性完成列表拼接,不需要额外循环语法
  2. 用map把每个字典映射为对应值:如果字典的唯一值为0则返回对应键,否则返回0
  3. 最后用sum累加所有映射结果
soma = sum(
    map(
        lambda d: list(d.keys())[0] if list(d.values())[0] == 0 else 0,
        sum(matrices[z], [])
    )
)
print("soma = ", soma)
逻辑验证

该实现和你原有循环写法的计算逻辑完全等价:所有值为0的字典的键会被累加,值为1的字典贡献0,不会影响最终求和结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:45:01