Python: 获取两个字典之间的区别

Python: Getting the difference between two dictionaries

我正在尝试找到一种方法来比较相同的键和值来区分两个字典。那就是单词和出现次数。

假设我有两部词典:

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 有 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}