删除字典中的某些键

时间:2013-12-10 06:02:47

标签: python dictionary key

我需要创建一个函数,如果它们的值在字典中是重复的,则删除键。例如......

remove_dups({1:4, 2:4, 3:2})
{3:2}
remove dups({1:2, 2:5})
{1:2, 2:5}

我不知道怎么做以及从哪里开始,请帮忙! 需要知道如何在没有列表推导或导入的情况下执行此操作。

2 个答案:

答案 0 :(得分:1)

def remove_dups(d):
    c, result = {}, {}
    for item in d.values():
        c[item] = c.get(item, 0) + 1
    for k, v in d.items():
        if c[v] == 1:
            result[k] = v
    return result

这样做的最好和最简单的方法是使用Counter和dict理解这样

from collections import Counter
def remove_dups(d):
    c = Counter(d.values())
    return {k:v for k, v in d.items() if c[v] == 1}

答案 1 :(得分:0)

字典有一个函数--dict.values() - 将所有值作为列表

{1:4,2:4,3:2} .values()= [4,4,2]

然后你可以用户计数器(来自集合导入计数器) - 检查count大于1的值,并删除与do值相关联的键。

(我不提供完整的代码,因为它听起来像是家庭作业)