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

Python中如何将字典的列表值转换为求和后的单个int或float

问题根源

你最初的实现代码中,给sum(item)额外套了一层方括号[],才会生成单元素列表作为字典值,属于多余操作。

最佳实现方案

推荐生成字典时一步完成,使用Python字典推导式实现,代码简洁且效率最优,无需后续二次处理:

TypeSum = {key: sum(value_list) for key, value_list in ID_TypeDict.items()}

运行后得到的结果就是你需要的格式:
{2: 1.0, 3: 1.0, 4: 2.0}

额外说明

原修改代码不生效的原因

你后续遍历修改的代码中,对临时变量val直接赋值只是修改了该变量的指向,并没有修改原字典中存储的真实值,因此不会生效。如果非要在生成字典后再修改,正确写法如下(不推荐,多了一次遍历开销):

for key in TypeSum:
    TypeSum[key] = TypeSum[key][0]

效率对比

两种实现的时间复杂度本质都是O(N)(N为所有列表的总元素数),但一步生成的方式没有多余的中间对象创建和二次遍历操作,代码可读性也更高,是更符合Python最佳实践的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:06:05