5

假设我有一个字典列表。我将“重复”定义为列表中具有相同值的字段“id”的任何两个字典(即使其他字段不同)。如何删除这些重复项。

一个示例列表将类似于:

[{'name': 'John' , 'id':1}, {'name': 'Mike' , 'id':5},{'name': 'Dan' , 'id':5}]

在这种情况下,“Mike”和“Dan”将是重复的,需要删除其中一个。不管是哪一个。

4

2 回答 2

10

将它们转储到另一个字典中,然后将它们拉出来。

dict((x['id'], x) for x in L).values()
于 2012-06-20T07:00:26.477 回答
2

以下函数的列表理解应该可以解决您的问题。

def f(seq):
    s = set()
    return [x for x in seq if x['id'] not in s and not s.add(x['id'])]
于 2012-06-20T07:44:19.187 回答