我需要创建一个函数,如果它们的值在字典中是重复的,则删除键。例如......
remove_dups({1:4, 2:4, 3:2})
{3:2}
remove dups({1:2, 2:5})
{1:2, 2:5}
我不知道怎么做以及从哪里开始,请帮忙! 需要知道如何在没有列表推导或导入的情况下执行此操作。
答案 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值相关联的键。
(我不提供完整的代码,因为它听起来像是家庭作业)