python字典里值如何相加_如何将具有键作为元组的python字典中的值相加

我有以下字典与键作为元组

D_grpTagReport = { ('Tag1', '1'):345.56 ,

('Tag1', '2'):45.6 ,

('Tag2', '3'):3.1 ,

('Tag3', '1'):21.56 ,

('Tag2', '3'):1.56 ,

}

我想得到每个唯一标签的值的总和.是否有可用于处理此字典的内置实用程序.

结果示例:

Tag1 : 391.16 # (total of all Tag1)

Tag2 : 4.66 # (total of all Tag2)

Tag3 : 21.56 # (total of all Tag3)

解决方法:

您可以使用itertools.groupby,首先对字典使用.items(),然后根据键的第一个元素对该列表进行排序,并使用键作为键的第一个元素(第一个元素的第一个元素)使用itertools.groupby关键元组,值).然后,对于每个组,您可以对值取sum()以获得所需的值.示例 –

from itertools import groupby

for key,group in groupby(sorted(D_grpTagReport.items()),key=lambda x:x[0][0]):

total = sum(g[1] for g in group)

print(key,':',total)

请注意,结果有点不对,你的字典也是如此,因为字典不能有多个值的相同键.

演示 –

>>> D_grpTagReport = { ('Tag1', '1'):345.56 ,

... ('Tag1', '2'):45.6 ,

... ('Tag2', '3'):3.1 ,

... ('Tag3', '1'):21.56 ,

... ('Tag2', '3'):1.56 ,

... }

>>>

>>>

>>> from itertools import groupby

>>> for key,group in groupby(sorted(D_grpTagReport.items()),key=lambda x:x[0][0]):

... total = sum(g[1] for g in group)

... print(key,':',total)

...

Tag1 : 391.16

Tag2 : 1.56

Tag3 : 21.56

标签:python,dictionary

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值