2012-09-13 88 views
8

給定一個字典d其中鍵值對由一個字符串作爲鍵和一個整數作爲值組成,我想打印鍵值爲最大值的鍵字符串。在python的字典中打印最大值的鍵

當然我可以循環使用d.items(),存儲最大和它的密鑰並在for循環後面輸出後者。但有一個更「Python化」的方式只用短短max函數構造像

print max(...) 
+0

根據你的字典你可能的使用想要切換鍵和值,讓整數有一個鍵,一個dstring有價值......(當然,如果你從不使用字符串鍵,你可以這樣做......) –

+3

Swapping key and value is * not * a good idea,因爲這些值可能根本不是唯一的... – halloleo

回答

16
print max(d.keys(), key=lambda x: d[x]) 

甚至更​​短(從評論):

print max(d, key=d.get) 
+6

'max(d,key = d.get)' – georg

+0

這兩個似乎工作! :-)感謝:我懷疑Python可能會提供一個簡潔的方式來處理這個問題! - 關於這兩種解決方案,第二個版本對我來說更容易記住。它對第一個有任何警告嗎? – halloleo

+0

@halloleo我不這麼認爲。 'keys()'只是多餘的,'get'是一種方法,它的行爲只與字典中不存在的項的'lambda'不同,在這種情況下不會發生。 –