您可以使用
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