查找两个字典列表中的公共成员

as3*_*unt 2 python dictionary

这可能是重复的,但我能找到的最接近的是比较 2 个列表,这些列表由 python 中具有唯一键的字典组成,这对我不起作用。

所以我有两个字典列表。

y = [{'a': 3, 'b': 4, 'c': 5}, {'a': 1, 'b': 2, 'c': 3}]
y = [{'a': 4, 'b': 5, 'c': 6}, {'a': 1, 'b': 2, 'c': 3}]
Run Code Online (Sandbox Code Playgroud)

我如何比较这两个列表,以便我的比较结果是两个列表的交集。我无法将其转换为设置,因为它表示不可散列类型 (dict)

mha*_*wke 5

你的问题和它的标题似乎相互矛盾。

两个列表的交集将是两个列表的公共元素。问题标题请求不在两个列表中的元素。你想要的是哪个?

对于交集,它的效率不是很高(时间为 O(n^2)),但是这个列表推导式可以做到:

>>> a = [{'a': 3, 'b': 4, 'c': 5}, {'a': 1, 'b': 2, 'c': 3}]
>>> b = [{'a': 4, 'b': 5, 'c': 6}, {'a': 1, 'b': 2, 'c': 3}]
>>> [d for d in a if d in b]
[{'a': 1, 'b': 2, 'c': 3}]
Run Code Online (Sandbox Code Playgroud)