python - 根据其他两个词典的差异创建词典的最佳方法是什么?

标签 python python-2.7 dictionary difference

我有两个列表字典:

dic1 = {'a' : [3, 4, 5], 'b' : [0, 1, 2]}
dic2 = {'a' : [3, 4, 5], 'b' : [8, 1, 2, 30], 'c' : [9, 8, 2]}

并且想要第三个只包含第二个字典中的内容而不是第一个字典中的内容:

dic3 = {'b' : [8, 30], 'c' : [9, 8, 2]}

在 python 2.7 及以下版本中,最 Pythonic 的方法是什么?

最佳答案

您可以使用字典理解来迭代 dic2 的项,以构建与 dic2dic1 列表之间差异的新映射> 使用设置差异来过滤相同的键,同时过滤掉两个字典中具有相同列表值的键:

{k: list(set(l).difference(dic1.get(k, []))) for k, l in dic2.items() if dic1.get(k) != l}

这将返回:

{'b': [8, 30], 'c': [8, 9, 2]}

关于python - 根据其他两个词典的差异创建词典的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55072106/

相关文章:

找不到 Python Office 365 Rest API 模块

python - 子类化时出现奇怪的问题?

java - 将列表转换为基于 boolean 属性的集合的最简单方法?

python - Python 中的 Pandas 错误 : columns must be same length as key

Python:我可以让子类为父类(super class)中定义的运算符返回其自身类型的实例吗?

用于音频混合拆分的 Python 模块

python - 将 Tornado 类中的变量导出到另一个模块

iphone - Objective C + Reskit - 如何用键包装我的字典以避免格式问题?

ios - Collection View 、数组和字典

python - 如何显示外键值而不是 id?