假设我有一个dicts列表。我将“重复”定义为列表中具有相同值的字段“id”的任何两个dicts(即使其他字段不同)。如何删除这些重复项。
示例列表如下:
[{'name': 'John' , 'id':1}, {'name': 'Mike' , 'id':5},{'name': 'Dan' , 'id':5}]
在这种情况下,'Mike'和'Dan'将是重复的,其中一个需要删除。哪一个没关系。
答案 0 :(得分:10)
将它们转储到另一个词典中,然后将它们拉出来。
dict((x['id'], x) for x in L).values()
答案 1 :(得分:2)
以下功能的列表理解应解决您的问题。
def f(seq):
s = set()
return [x for x in seq if x['id'] not in s and not s.add(x['id'])]