我有一长串字典,其中大部分不重叠。但是,某些词典具有相同的“名称”字段,我只希望词典列表中具有唯一的名称。我希望保留第一次出现的名称,并从列表中删除此后出现的任何名称。
我在下面列出了一个简短的列表来说明该场景:
myList = [
{'Name':'John', 'Age':'50', 'Height':'70'},
{'Name':'Kathy', 'Age':'43', 'Height':'65'},
{'Name':'John','Age':'46','Height':'68'},
{'Name':'John','Age':'50','Height':'72'}
]
我希望此列表返回第一个“约翰”和凯西,但不返回第二个或第三个约翰及其相关信息。
一个可接受但不是最佳的解决方案是不要将具有相同名称的字典放在一起。
最佳答案
您可以遍历该列表并保留一组唯一名称的集
。每次遇到新名称(即不在集合中的名称)时,都将其添加到集合中并将相应的字典添加到结果中:
def uniqueNames(dicts):
names = set()
result = []
for d in dicts:
if not d['Name'] in names:
names.add(d['Name'])
result.append(d)
return result
关于Python - 返回具有唯一键 :Value pair 的字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39047790/