我要按位置对所有的值求和。
例如:
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
作为变量名,因为后者是内置的名称。还要注意,这依赖于字典保留插入顺序的事实,这只在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))