2012-03-13 107 views
6

我有一個簡單的問題(或者我認爲)。如何從字典中刪除具有最高值的密鑰?

我有一本字典,讓說,它看起來像這樣:

dict = {'A':100, 'a':10, 'T':50, 't':5} 

我只是想刪除與最高值的關鍵。我試過這個:

del max(dict.values()) 

這是錯誤信息:'語法錯誤:不能刪除函數調用'。 我想最終的結果是:

dict = {'a':10, 'T':50, 't':5} 

回答

9

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] 

順便說一句,你不應該命名您的字典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] 
+0

不是'lambda',它也可以使用'd .__ getitem__'。 – 2012-03-13 14:04:34

+1

@Michael:True或者'd.get'就像其他答案一樣。 – interjay 2012-03-13 14:08:06

8

你需要拿到鑰匙到最大值的保持。

試試這個:

del d[max(d, key=d.get)] 

此外,你應該避免調用您的變量dict因爲它陰影內置名。

相關問題