字典中的列总和
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))
我想按位置对所有值求和。
例如,给定:
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))