Hil*_*ell 3 python dictionary list set duplicates
我有一个包含嵌套字典的字典列表,如下所示:
v0 = [ { 'a': 1, 'b': { 'c': 3 } },
{ 'a': 1, 'b': { 'c': 3 }, 'd': 4 },
{ 'a': 1 },
{ 'a': 1, 'b': { 'c': 3 } } ]
Run Code Online (Sandbox Code Playgroud)
如何删除重复的列表元素,结果如下:
v1 = [ { 'a': 1, 'b': { 'c': 3 } },
{ 'a': 1, 'b': { 'c': 3 }, 'd': 4 },
{ 'a': 1 } ]
Run Code Online (Sandbox Code Playgroud)
我不关心顺序,我只想要所有元素的集合。我见过很多类似的问题,但答案仅适用于列表中的简单字典,不适用于嵌套字典。例如:
v1 = [dict(t) for t in set([tuple(d.items()) for d in v0])]
Run Code Online (Sandbox Code Playgroud)
如果字典没有嵌套,这将起作用,但因为它们是嵌套的,所以我收到错误“TypeError: unhashable type: 'dict'”
>>> v0 = [ { 'a': 1, 'b': { 'c': 3 } },
... { 'a': 1, 'b': { 'c': 3 }, 'd': 4 },
... { 'a': 1 },
... { 'a': 1, 'b': { 'c': 3 } } ]
>>> out = []
>>> for v in v0:
... if v not in out:
... out.append(v)
...
>>> out
[{'a': 1, 'b': {'c': 3}}, {'a': 1, 'b': {'c': 3}, 'd': 4}, {'a': 1}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2452 次 |
| 最近记录: |