Skip to main content
 首页 » 编程设计

python之获取嵌套列表字典中所有值的总和

2025年05月04日10kevingrace

Banking_Deposits = {'January':[15000,9800,10100],  'Feburary':[2500,1400,14100], 'March': [20000,78366]} 
 
total_dep = sum(Banking_Deposits.values()) 

我想获得所有 3 个月的存款总额的总和。但是我返回了这个错误:

TypeError: unsupported operand type(s) for +: 'int' and 'list' 

请您参考如下方法:

更直观的方法是进行嵌套求和:

sum(sum(x) for x in Banking_Deposits.values()) 

您还可以使用 sum's start 参数首先加入列表:

sum(sum(Banking_Deposits.values(), [])) 

start 的默认值为 0,这就是您收到错误的原因:0 + [...] 不计算。更不用说您的原始总和会产生一个很长的列表而不是一个数字,因为这是您将列表加在一起得到的结果。

链接列表的更好方法是使用 itertools.chain.from_iterable ,它不会将多个列表分配为副产品:

sum(chain.from_iterable(Banking_Deposits.values())) 

@Primusa's answer提出了一种等效且更直观的方法来展平我强烈推荐的值。