Python:获取两个字典之间的差异

问题描述 投票:0回答:1

我正在尝试找到一种方法来比较两个键和值之间的差异,以得到两个词典之间的差异。那是单词和出现。

说我有两个字典:

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]

然后我将这些差异用于计算。我对使用字典不是很有经验,因此可以提供任何帮助。

我可能还必须考虑一本没有相同键的字典。 E.G。

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次出现在底特律。

python dictionary subtraction
1个回答
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}
© www.soinside.com 2019 - 2024. All rights reserved.