Python:了解两个词典之间的差异

Python:了解两个词典之间的差异,python,dictionary,subtraction,Python,Dictionary,Subtraction,我正试图找到一种方法来比较两个字典之间的差异,比较相同的键和值。这就是单词和事件 假设我有两本字典: Dict_1 = {' Chicago ': 3, ' Washington ': 5, ' LA ': 22, ' Boston ': 8, ' Seattle ': 0} Dict_2 = {' Chicago ': 4, ' Washington ': 9, ' LA ': 26, ' Boston ': 12, ' Seattle ': 2} 因此,我所关注的是出现的差异,显示了两本词

我正试图找到一种方法来比较两个字典之间的差异,比较相同的键和值。这就是单词和事件

假设我有两本字典:

Dict_1 = {' Chicago ': 3, ' Washington ': 5, ' LA ': 22, ' Boston ': 8, ' Seattle ': 0}
Dict_2 = {' Chicago ': 4, ' Washington ': 9, ' LA ': 26, ' Boston ': 12, ' Seattle ': 2}
因此,我所关注的是出现的差异,显示了两本词典中的差异

[3-4, 5-9, 22-26, 8-12, 0-2] or like this [-1, -4, -4, -4, -2]
然后我使用这些差异进行计算。我对使用字典不是很有经验,所以非常感谢您的帮助

我可能还必须解释一本字典没有相同的键。例如

Dict_1 = {' Chicago ': 3, ' Washington ': 5, ' LA ': 22, ' Boston ': 8, ' Seattle ': 0, ' Detroit ': 3}
Dict_2 = {' Chicago ': 4, ' Washington ': 9, ' LA ': 26, ' Boston ': 12, ' Seattle ': 2}

字典1有底特律,字典2没有。我仍然想得到差异,这将是3,因为Dict 2在Detroit的出现次数为0。

你可以使用字典理解:

diffdict = {
    key: Dict_1.get(key, 0) - Dict_2.get(key, 0)
    for key in Dict_1.keys() | Dict_2.keys()
}
在这里,我对两个字典中缺少的键使用默认值零,这意味着如果一个值在Dict_1中不可用,但在Dict_2中,它的值将是-Dict_2[key]

生成的diffdict如下所示:

>>> diffdict
{' Boston ': -4, ' Washington ': -4, ' LA ': -4, ' Chicago ': -1, ' Seattle ': -2}

您可以使用字典理解:

diffdict = {
    key: Dict_1.get(key, 0) - Dict_2.get(key, 0)
    for key in Dict_1.keys() | Dict_2.keys()
}
在这里,我对两个字典中缺少的键使用默认值零,这意味着如果一个值在Dict_1中不可用,但在Dict_2中,它的值将是-Dict_2[key]

生成的diffdict如下所示:

>>> diffdict
{' Boston ': -4, ' Washington ': -4, ' LA ': -4, ' Chicago ': -1, ' Seattle ': -2}

谢谢你,那样会有帮助的!但是你有什么建议包括底特律吗?请看一本字典有,另一本没有,问题是未解释的值之间仍然存在差异。@AllenPeck我的解决方案也适用于第二个示例,并将导致{‘LA’:-4,‘底特律’:3,‘西雅图’:-2,‘华盛顿’:-4,‘波士顿’:-4,‘芝加哥’:-1}谢谢你,那样会有帮助的!但是你有什么建议包括底特律吗?请看一本字典有,另一本没有,问题是未解释的值之间仍然存在差异。@AllenPeck我的解决方案也适用于第二个示例,并将导致{‘LA’:-4,‘底特律’:3,‘西雅图’:-2,‘华盛顿’:-4,‘波士顿’:-4,‘芝加哥’:-1}