使用Python为元组中每个给定的第一个值求和的元组中的第二个值 - python

我正在处理大量记录,需要对每个客户帐户的给定字段求和,以达到整体帐户余额。虽然我可以将数据以任何合理的形式放置,但我认为最简单的方法是在处理每条记录时列出元组(cust_id,balance_contribution)。经过一轮处理后,我想为每个cust_id加上第二个项目,并且我试图做到这一点而不会循环访问数据数千次。

例如,输入数据可能如下所示:[(1,125.50),(2,30.00),(1,24.50),(1,-25.00),(2,20.00)]

我希望输出是这样的:

[(1,125.00),(2,50.00)]

我读过其他问题,人们只是想使用sum(i表示i,j中的j)形式添加元组第二个元素的值,但这确实将它们与第一个元素分开。

此讨论python sum tuple list based on tuple first value,将值作为分配给字典中每个键(cust_id)的列表。我想那我可以弄清楚如何在列表中添加每个值?

有更好的方法吗?

先感谢您。

python大神给出的解决方案

import collections

def total(records):
    dct = collections.defaultdict(int)
    for cust_id, contrib in records:
        dct[cust_id] += contrib

    return dct.items()