我是 Python 新手。我有两个字典,它们共享相同的键,但键的值不同。我想比较这两个字典,以便获得每个键的值的数值差异。例如:
dict1 = {'hi' : 45, 'thanks' : 34, 'please' : 60}
dict2 = {'hi' : 40, 'thanks' : 46, 'please' : 50}
换句话说,我想收到第三个字典或一个对列表,它们将显示这两个字典中值的数值差异(即从 dict2 中减去 dict1 的值(反之亦然)。因此它类似于这个:
dict_difference = {'hi' : 5 , 'thanks' : -12, 'please' : 10}
我知道从另一个字典中减去一个字典:
dict1 = Counter({'hi' = 45, 'thanks' = 34, 'please' = 60})
dict2 = Counter({'hi' = 40, 'thanks' = 46, 'please' = 50})
dict3 = dict1-dict2
# 只会返回正值,所以它会给出:
dict3 = {'hi'= 5, 'please' = 10}
# 这不是我想要的。
我还想过将字典转换为对列表(我认为这就是它的名称):
dictlist = []
for key, value in dict1.iteritems():`
temp = (key, value)
dictlist.append(temp)
因此
print dictlist #gives:
[('hi', 45),('thanks' = 34), ('please' = 60)]
所以我认为,如果我能设法将字典转换为对列表,然后以 key:value 的形式使其成为 key = value,我将能够应用 subtract() 方法并实现我的目标想。
我想通过https://docs.python.org/2/library/collections.htmldef __repr__(self)
中所示的方法来实现它,但我没有走远。
如果有任何帮助,我将不胜感激。如果可能,请为您的代码留下描述。如果我的方法是错误的,并且有一种更简单的方法可以从另一个字典中减去一个字典的值,请也分享它。