python - 比较两个字典的键值并返回一个有差异的新字典

标签 python dictionary

我想做的是比较两个字典:

predict = {'eggs': [1,2],'ham': [1,2,3], 'sausage': [1,2,3]}
actual = {'eggs': [2], 'ham': [1,2]}

并返回差异的新字典:

difference = {'eggs': [1],'ham': [3], 'sausage': [1,2,3]}

(对于大量数据)执行此操作的有效方法是什么?谢谢。

最佳答案

这应该可以做到:

difference = {}
for key, value in predict.items():
    difference[key] = [el for el in predict[key] if (key not in actual) or (el not in actual[key])]

print(difference)

编辑: 代码已更新以处理实际列表中缺少的类别

关于python - 比较两个字典的键值并返回一个有差异的新字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45786688/

相关文章:

python - 如何在不使用嵌套 for 循环的情况下将两个列表合并到字典中

python - 从字典中删除重复项

c++ - 使用用户定义的转换创建映射条目

Python - 创建循环遍历嵌套列表的字典列表

python - Cython 中的水稻编码

python - 通过 SQLAlchemy 插入 MySQL 时截断太长的 varchar

Python - 从列表创建连接条件

python - 如何将字典存储在文件中并读取/写入该文件?

python - Pandas :按天打破日期时间间隔

python - Python 中星号后的位置参数