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

如何使用带lambda参数的reduce函数生成键相同、值为同键求和结果的新字典

实现代码

首先需要提前导入functools模块中的reduce方法(Python 3起reduce不再是内置函数,统一归到functools模块下),一行实现的代码如下:

from functools import reduce

# 原始数据
fruit = [{"apple": 10, "pear": 20, "banana": 30, "strawberry": 50},
{"apple": 12, "pear": 5, "banana": 20, "strawberry": 5},
{"apple": 15, "pear": 26, "banana": 32, "strawberry": 8}]

# 一行reduce实现同键求和
result = reduce(lambda acc, cur: {k: acc[k] + cur[k] for k in acc}, fruit, {k: 0.0 for k in fruit[0]})

运行后打印result即可得到预期输出:

{'apple': 37.0, 'pear': 51.0, 'banana': 82.0, 'strawberry': 63.0}

逻辑说明

  • lambda接收两个参数:acc是存储累计结果的临时字典,cur是当前遍历到的列表中的单个字典
  • 用字典推导式遍历所有键,对同键的值做累加,初始值设置为0.0直接保证了最终结果的数值类型为float
  • reduce的第三个参数是累加的初始字典,提前提取了原字典所有键,保证最终输出的键和原字典完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:36:05