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

Python中如何遍历元组并按键汇总数值到字典

解决字典重复键数值汇总的问题

首先得明确:Python的字典不允许存在重复键,你写的期望输出里出现两个'Rent'是不符合字典规则的,正确的需求应该是把相同键对应的数值累加,最终得到每个键对应汇总后的结果。

假设你的元组结构

先假设从数据库拿到的元组是这种键值对形式:

db_tuple = (('Rent', -100.0), ('Groceries', -20.0), ('Rent', -64.0), ('Other', -3.3), ('Bills', -18.0))

方案1:手动遍历累加

初始化空字典,逐个处理元组里的键值对,存在的键就累加数值,不存在就直接赋值:

result = {}
for key, value in db_tuple:
    if key in result:
        result[key] += value
    else:
        result[key] = value

运行后得到的结果是:

{'Rent': -164.0, 'Groceries': -20.0, 'Other': -3.3, 'Bills': -18.0}

方案2:用collections.defaultdict简化代码

借助标准库的defaultdict,可以省去判断键是否存在的步骤,直接累加:

from collections import defaultdict

result = defaultdict(float)
for key, value in db_tuple:
    result[key] += value

# 可选:转成普通字典
result = dict(result)

为什么常规dict()不行?

字典的键是唯一的,当你用dict(db_tuple)转换时,后面出现的重复键会直接覆盖之前的,所以最终只会保留每个键的最后一个对应值,这就是你遇到的“其余值被忽略”的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:39:17