过滤在某个键处具有重复值的词典列表

埃奇查玛·纳亚克(Echchama Nayak)

我有以下字典:

dic=[{'a':1,'b':2,'c':3},{'a':9,'b':2,'c':2},{'a':5,'b':1,'c':2}]

我想用某些键的重复值过滤掉那些字典,例如在这种情况下,键“ b”在列表的第一和第二个字典中具有重复的值。我想删除第二个条目

很简单,我希望过滤后的列表如下所示:

filt_dic=[{'a':1,'b':2,'c':3},{'a':5,'b':1,'c':2}]

有pythonic的方法可以做到这一点吗?

tobias_k

使用另一个字典(或defaultdict)来跟踪您已经看到了哪些键的值。该词典将为set原始字典的每个键保留一个(用于快速查找)。

dic=[{'a':1,'b':2,'c':3},{'a':9,'b':2,'c':2},{'a':5,'b':1,'c':2}]

seen = defaultdict(set)
filt_dic = []
for d in dic:
    if not any(d[k] in seen[k] for k in d):
        filt_dic.append(d)
        for k in d:
            seen[k].add(d[k])

print(filt_dic)

之后,filt_dic[{'a': 1, 'c': 3, 'b': 2}, {'a': 5, 'c': 2, 'b': 1}]seen{'a': set([1, 5]), 'c': set([2, 3]), 'b': set([1, 2])})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从字典列表中过滤出具有重复键和不同值的元素?

来自分类Dev

从词典列表中删除重复项(具有唯一值)

来自分类Dev

从词典列表中删除重复项(具有唯一值)

来自分类Dev

从字典中某个键的值列表中删除重复项?

来自分类Dev

查找具有重复值的字典键

来自分类Dev

根据键过滤Python中的词典列表

来自分类Dev

创建具有默认值的词典列表

来自分类Dev

映射具有重复的键,但具有不同的值?

来自分类Dev

具有重复值(键,值)的有序集合

来自分类Dev

具有可为空值的过滤列表

来自分类Dev

连接具有重复值的列表

来自分类Dev

如何遍历具有重复值的列表?

来自分类Dev

连接具有重复值的列表

来自分类Dev

Java的8个流API:如何将列表转换为列表中的某个地图<龙,集>具有重复键?

来自分类Dev

根据匹配的键:值对组合词典列表中的词典

来自分类Dev

带有键列表的快速词典填充

来自分类Dev

从列表中删除具有重复键元素的元组

来自分类Dev

合并具有重复键的地图列表

来自分类Dev

插入具有多个值的重复键更新

来自分类Dev

sql server,如何创建具有重复值的键

来自分类Dev

具有重复值的数组组合函数(保留键)

来自分类Dev

如何在Ruby中将键值对的列表转换为哈希,以便将具有重复键的值存储在数组中?

来自分类Dev

比较两个大型词典,并为它们共有的键创建值列表

来自分类Dev

具有未知类型的词典<>的列表<>

来自分类Dev

如何获取列表中某个值的键

来自分类Dev

具有重复键的KeyValuePair

来自分类Dev

列表过滤的Python词典

来自分类Dev

如何从Python词典列表中基于所选键删除重复词典?

来自分类Dev

通过具有列表值的列过滤熊猫

Related 相关文章

热门标签

归档