如何找到两个词典列表之间的区别?


问题内容

我有两个字典列表,我想找出它们之间的区别(即第一个列表中存在什么,但第二个列表中不存在,第二个列表中存在但第一个列表中不存在的东西)。

问题是这是词典列表

a = [{'a': '1'}, {'c': '2'}]
b = [{'a': '1'}, {'b': '2'}]

set(a) - set(b)

结果

TypeError: unhashable type: 'dict'

所需结果:

{'c': '2'}

我该怎么做?


问题答案:

您可以使用in运算符查看它是否在列表中

a = [{'a': '1'}, {'c': '2'}]
b = [{'a': '1'}, {'b': '2'}]

>>> {'a':'1'} in a
True
>>> {'a':'1'} in b
True

>>> [i for i in a if i not in b]
[{'c': '2'}]