我有一個簡單的問題(或者我認爲)。如何從字典中刪除具有最高值的密鑰?
我有一本字典,讓說,它看起來像這樣:
dict = {'A':100, 'a':10, 'T':50, 't':5}
我只是想刪除與最高值的關鍵。我試過這個:
del max(dict.values())
這是錯誤信息:'語法錯誤:不能刪除函數調用'。 我想最終的結果是:
dict = {'a':10, 'T':50, 't':5}
我有一個簡單的問題(或者我認爲)。如何從字典中刪除具有最高值的密鑰?
我有一本字典,讓說,它看起來像這樣:
dict = {'A':100, 'a':10, 'T':50, 't':5}
我只是想刪除與最高值的關鍵。我試過這個:
del max(dict.values())
這是錯誤信息:'語法錯誤:不能刪除函數調用'。 我想最終的結果是:
dict = {'a':10, 'T':50, 't':5}
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]
你需要拿到鑰匙到最大值的保持。
試試這個:
del d[max(d, key=d.get)]
此外,你應該避免調用您的變量dict
因爲它陰影內置名。
不是'lambda',它也可以使用'd .__ getitem__'。 – 2012-03-13 14:04:34
@Michael:True或者'd.get'就像其他答案一樣。 – interjay 2012-03-13 14:08:06