给定一个 turple 格式的列表[(Currency1, amount1),(Currency2, amount2)],我想按关键货币对每个金额进行求和,但它不起作用。我试过:
>>> 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>>>\nRun Code Online (Sandbox Code Playgroud)\n我想知道如何按货币计算总金额,该金额将作为如下所示的 turple 列表返回:\n [(\xe2\x80\x98USD\xe2\x80\x99, 4500), (\xe2\x80\x98THB\xe2\x80\x99, 25)]\n请帮忙,谢谢。
如果您想汇总相同货币的价值,这会有所帮助:
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)