gpt4 book ai didi

python - 比较两个字典的值以获得它们的数值差异 Python

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:34 28 4
gpt4 key购买 nike

我是 Python 新手。我有两个字典,它们共享相同的键但键值不同。我想比较这两个字典,以便获得每个键值的数值差异。例如:

dict1 = {'嗨':45,'谢谢':34,'请':60}

dict2 = {'嗨':40,'谢谢':46,'请':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() 方法,并且实现我想要的。

我想通过 def __repr__(self) 实现它,如 https://docs.python.org/2/library/collections.html 所示。但我没走多远。

如有任何帮助,我将不胜感激。如果可能的话,请为您的代码留下描述。如果我的方法是错误的,并且有更简单的方法从一个字典中减去另一个字典的值,请也分享它。

最佳答案

首先,您的词典格式不正确(: 而不是 =):

dict1 = {'hi':45, 'thanks':34, 'please':60}
dict2 = {'hi':40, 'thanks':46, 'please':50}

您可以使用字典理解。您基本上遍历一个字典,检查键是否也在第二个字典中,并将值的差异插入输出字典中。全部在一行中。

dic = {key: dict1[key]-dict2[key] for key in dict1 if key in dict2}

关于python - 比较两个字典的值以获得它们的数值差异 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29266679/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com