字典中的列总和

Columnwise sum in a dictionary

我想按位置对所有值求和。

例如,给定:

dict= {"adi":(1,2,4),"simon":(1,7,0),"lus":(3,1,2)}

我要执行以下操作:

(1+1+3,2+7+1,4+0+2)----> (5,10,6)

我怎样才能做到这一点?

我们可以zip(*data.values())转置字典中的值,然后我们可以使用sum()和列表推导得到我们最终的结果:

[sum(val) for val in zip(*data.values())]

这输出:

[5, 10, 6]

请注意,我使用 data 而不是 dict 作为变量名,因为后者是 built-in 的名称。另请注意,这依赖于字典保留插入顺序这一事实,这仅适用于 Python 3.7+.

遍历字典d中的所有键k,并且对于每个k,将三元组d[k]添加到当前和res:

d = {"adi":(1,2,4),"simon":(1,7,0),"lus":(3,1,2)}
res = [0,0,0]
for k in d:
    res = [res[i] + d[k][i] for i in range(3)]
print(tuple(res))