我有两个列表字典:
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
的项,以构建与 dic2
和 dic1
列表之间差异的新映射> 使用设置差异来过滤相同的键,同时过滤掉两个字典中具有相同列表值的键:
{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/