我是新手,正在学习Python。我有两个字典,这两个字典具有相同的键但不同的键值。我想比较这两个字典,以便获得每个键的值之间的数字差异。例如:
dict1 = {'hi' : 45, 'thanks' : 34, 'please' : 60} dict2 = {'hi' : 40, 'thanks' : 46, 'please' : 50}
换句话说,我想要一个第三个字典或一对列表,其中显示这两个字典中值之间的数值差异(即从字典2减去字典1)。它将类似于以下内容:
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} # 这不是我想要的。
我还考虑将字典转换为一组成对的列表:
所以我认为如果我能够将字典转换为键值对列表,然后以key:value的形式呈现,即key = value,我就能够应用subtract()方法并实现我的目标。
我考虑通过
如果可能,请留下代码说明。如果我的方法不正确,并且有更简单的从一个字典中减去另一个字典的方法,请分享。非常感谢您的帮助。
dict1 = {'hi' : 45, 'thanks' : 34, 'please' : 60} dict2 = {'hi' : 40, 'thanks' : 46, 'please' : 50}
换句话说,我想要一个第三个字典或一对列表,其中显示这两个字典中值之间的数值差异(即从字典2减去字典1)。它将类似于以下内容:
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()方法并实现我的目标。
我考虑通过
def __repr__(self)
来实现,如https://docs.python.org/2/library/collections.html所示,但是我没有进展。如果可能,请留下代码说明。如果我的方法不正确,并且有更简单的从一个字典中减去另一个字典的方法,请分享。非常感谢您的帮助。