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

标签 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}

所以我追求的是出现次数的差异,显示两个词典中的差异。

[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 包含 Detroit,这是字典 2 没有的条目。我仍然想得到差异,即 3,因为 Dict 2 有 0 次出现 Detroit。

最佳答案

您可以使用字典理解来实现:

diffdict = {
    key: Dict_1.get(key, 0) - Dict_2.get(key, 0)
    for key in Dict_1.keys() | Dict_2.keys()
}

此处,我对两个词典的缺失键使用默认值 0,这意味着如果某个值在 Dict_1 中不可用,但在 Dict_2 中可用>,其值为 -Dict_2[key]

生成的 diffdict 将如下所示:

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

关于Python:获取两个字典之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58545971/

相关文章:

PHP 从日期格式为 ('m-Y' 的日期中减去 1 个月)

python - 对列的部分函数进行 Pandas 矢量化

python - 在 python 中迭代分组 df 中的组并返回基于聚合的值

Python 2.7 格式化字典键属性的递归调用

python - Python 中的模数和运算顺序

Python 词典在解释器中重新排列?

python - 用于关联字典列表和列表列表的 pythonian 单行代码

python - iter,值,字典中的项目不起作用

R 从今天的日期减去 1 个月给出 NA

c - 减法溢出行为