从字典列表中获取唯一值

Jis*_*son 4 python

可能的重复:
如何在 python 中对 dict 列表进行统一

我有一个清单如下

[
{'x':'1','y':'1'},{'x':'2','y':'2'},{'x':'1','y':'1'}
]
Run Code Online (Sandbox Code Playgroud)

我想得到一个新列表如下(独特元素)

[
{'x':'1','y':'1'},{'x':'2','y':'2'}
]
Run Code Online (Sandbox Code Playgroud)

最好的办法是什么?

Lan*_*aru 5

import ast

l = [
{'x':'1','y':'1'},{'x':'2','y':'2'},{'x':'1','y':'1'}
]

[ast.literal_eval(el1) for el1 in set([str(el2) for el2 in l])]
Run Code Online (Sandbox Code Playgroud)

通常,保留唯一元素的一个简单解决方案是将它们添加到集合中。然而,由于字典是不可散列的(不能放入集合中),我提供了一个解决方法。首先,字典被转换为字符串,放置在一个集合中(以保留唯一的),然后使用 ast.literal_eval 转换回字典。