列表字典的值求和

2024-06-26 14:14:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份字典清单:

[{'Total Incidents': '1', 'CrimeDate': '05/14/2016'}, {'Total Incidents': '1', 'CrimeDate': '05/14/2016'}, {'Total Incidents': '1', 'CrimeDate': '05/14/2016'}, {'Total Incidents': '1', 'CrimeDate': '05/14/2016'}, {'Total Incidents': '1', 'CrimeDate': '05/14/2016'}, {'Total Incidents': '1', 'CrimeDate': '05/14/2016'}, {'Total Incidents': '1', 'CrimeDate': '05/14/2016'}, {'Total Incidents': '1', 'CrimeDate': '05/14/2016'}, {'Total Incidents': '1', 'CrimeDate': '05/14/2016'}]

我需要把'Total Incidents'的de值转换成int,然后把它们加起来。另外,如果日期相等,则函数会将所有日期转换为一个日期。例如,输出应该如下所示:

^{pr2}$

到目前为止,我一直在努力:

dictf = reduce(lambda x, y: dict((k, v + y[k]) for k, v in x.iteritems()), dict1)

dict1是一个包含第一个字典的变量。 但是输出不是我想要的,它给了我这个:

{'Total Incidents': '111111111', 'CrimeDate': '05/14/201605/14/201605/14/201605/14/201605/14/201605/14/201605/14/201605/14/201605/14/2016'}

提前谢谢


Tags: lambda函数inreducefor字典dedict
1条回答
网友
1楼 · 发布于 2024-06-26 14:14:27

使用^{}

>>> [{'CrimeDate': g[0], 'Total Incidents': sum(map(lambda x: int(x['Total Incidents']), g[1]))} for g in itertools.groupby(d, lambda x: x['CrimeDate'])]
[{'Total Incidents': 9, 'CrimeDate': '05/14/2016'}]

相关问题 更多 >