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

Chr*_*ris 12 python dictionary list set

我有两个字典列表,我想找到它们之间的区别(即第一个列表中存在但第二个列表中存在的内容,以及第二个列表中存在但第一个列表中不存在的内容).

问题是它是一个字典列表

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

set(a) - set(b)
Run Code Online (Sandbox Code Playgroud)

结果

TypeError: unhashable type: 'dict'
Run Code Online (Sandbox Code Playgroud)

期望的结果:

{'c': '2'}
Run Code Online (Sandbox Code Playgroud)

我该如何做到这一点?

Cor*_*mer 13

您可以使用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'}]
Run Code Online (Sandbox Code Playgroud)