同名列表中的总和

Sov*_*iry -4 python sum list

给定一个 turple 格式的列表[(Currency1, amount1),(Currency2, amount2)],我想按关键货币对每个金额进行求和,但它不起作用。我试过:

\n
    >>> mylist=[(\xe2\x80\x98USD\xe2\x80\x99,1000),(\xe2\x80\x98THB\xe2\x80\x99,25),(\xe2\x80\x98USD\xe2\x80\x99,3500)]\n    >>> for i in mylist:\n...         sum += i[1]\n...\nTraceback (most recent call last):\n  File \xe2\x80\x9c<stdin>\xe2\x80\x9c, line 2, in <module>\nTypeError: unsupported operand type(s) for +=: \xe2\x80\x98builtin_function_or_method\xe2\x80\x99 and \xe2\x80\x98int\xe2\x80\x99\n>>>\n
Run Code Online (Sandbox Code Playgroud)\n

我想知道如何按货币计算总金额,该金额将作为如下所示的 turple 列表返回:\n [(\xe2\x80\x98USD\xe2\x80\x99, 4500), (\xe2\x80\x98THB\xe2\x80\x99, 25)]\n请帮忙,谢谢。

\n

Mar*_*cin 5

如果您想汇总相同货币的价值,这会有所帮助:

from collections import defaultdict

my_dict = defaultdict(int)

for k,v in mylist:
    my_dict[k] += v

print(my_dict)   
# defaultdict(<class 'int'>, {'USD': 4500, 'THB': 25})
Run Code Online (Sandbox Code Playgroud)