[英]find all the same keys in a list of dicts and find the difference between their values
我有一个练习,我得到两个或更多稀疏矩阵,我需要找到它们之间的区别。 输入是一个字典列表,输出是具有差异的字典:
输入: diff_sparse_matrices([{(1, 3): 2, (2, 7): 1}, {(1, 3): 6}])
输出: {(1, 3): -4, (2, 7): 1}
def diff_sparse_matrices(lst):
new_dict = {}
for d in lst :
for key in d.keys() :
这就是我能想到的。 我该如何编写这段代码?
如果键的值为 0,我还需要删除该项目,所以
输入: diff_sparse_matrices([{(1, 3): 2, (2, 7): 1}, {(1, 3): 2}])
输出: {(2, 7): 1}
我不知道为什么,但如果输入是
[{(1, 3): 2, (2, 7): 1}, {(1, 3): 6, (9,10): 7}, {(2,7): 0.5, (4,2): 10}]
输出是
{(1, 3): -4, (2, 7): 0.5, (9, 10): -7, (4,2): -10}
请注意,它是 - 7 和 -10 而不是 7 和 10
你可以用dict.get()
试试这个:
lst_dct = [{(1, 3): 2, (2, 7): 1}, {(1, 3): 6, (9,10): 7}, {(2,7): 0.5, (4,2): 10}]
res = {}
for ld in lst_dct:
for k,v in ld.items():
res[k] = -v - res.get(k,0)
print(res)
输出:
{(1, 3): -4, (2, 7): 0.5, (9, 10): -7, (4, 2): -10}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.