我有一个包含嵌套字典的字典列表,就像这样:
v0 = [ { 'a': 1, 'b': { 'c': 3 } },
{ 'a': 1, 'b': { 'c': 3 }, 'd': 4 },
{ 'a': 1 },
{ 'a': 1, 'b': { 'c': 3 } } ]
如何去除重复的列表元素,使结果如下所示:
v1 = [ { 'a': 1, 'b': { 'c': 3 } },
{ 'a': 1, 'b': { 'c': 3 }, 'd': 4 },
{ 'a': 1 } ]
我不关心顺序,我只想要所有元素的集合。我看过很多类似的问题,但是这些答案只适用于列表中的简单字典,而不能处理嵌套字典。例如:
v1 = [dict(t) for t in set([tuple(d.items()) for d in v0])]
如果字典没有嵌套,这个方法就可以使用。但是由于它们是嵌套的,所以我会收到错误消息“TypeError: unhashable type: 'dict'”。
for v in v0
是 O(n),而if v not in out
是 O(1)。 - Sameer Mirji