如何从具有最高值的字典中删除密钥?

edg*_*edg 6 python

我有一个简单的问题(或者我认为).

我有一本字典,让我们说它看起来像这样:

dict = {'A':100, 'a':10, 'T':50, 't':5}
Run Code Online (Sandbox Code Playgroud)

我只想删除具有最高值的密钥.我试过这个:

del max(dict.values())
Run Code Online (Sandbox Code Playgroud)

这是错误消息:'语法错误:无法删除函数调用'.我希望最终结果是:

dict = {'a':10, 'T':50, 't':5}
Run Code Online (Sandbox Code Playgroud)

int*_*jay 10

max(d.values())将为您提供最大值(100),但要从字典中删除条目,您需要相应的键('A').

你可以这样做:

d = {'A':100, 'a':10, 'T':50, 't':5}
key_to_delete = max(d, key=lambda k: d[k])
del d[key_to_delete]
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你不应该为你的字典dict命名,因为这是内置类型的名称.

如果可能有多个条目具有相同的最大值,并且您想要删除所有条目:

val_to_delete = max(d.values())
keys_to_delete = [k for k,v in d.iteritems() if v==val_to_delete]
for k in keys_to_delete:
    del d[k]
Run Code Online (Sandbox Code Playgroud)


wim*_*wim 8

你需要掌握最大值的关键.

试试这个:

del d[max(d, key=d.get)]
Run Code Online (Sandbox Code Playgroud)

此外,您应该避免调用变量,dict因为它会影响内置名称.