Python - 返回具有唯一键 :Value pair 的字典列表

标签 python list python-3.x dictionary unique

我有一长串字典,其中大部分不重叠。但是,某些词典具有相同的“名称”字段,我只希望词典列表中具有唯一的名称。我希望保留第一次出现的名称,并从列表中删除此后出现的任何名称。

我在下面列出了一个简短的列表来说明该场景:

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/

相关文章:

python - 具有多维数组的外积

python - 如何从 CSV 中的括号中拆分文本,并用它创建另一列

Java 链表 : remove from to to

java - 如何分割 List<List<String>> 行

python - 给定不连续出现的索引列表,替换所有出现的 s 的子字符串 t 的 pythonic 方法是什么?

python - pickle 时保留 numpy View

python - 数据帧特定转置优化

python - 循环时比较python中的列表

python - 是否可以使用预定义的排序机制在 Python 中初始化一个空的 OrderedDict?

python - 分组和拆分以避免泄漏