2013-12-18 66 views
2

我有一本詞典,如mydict={'tom': '100','dick': '50','harry': '121','jim':'25'}。注意值是字符串格式的數字。 我寫了一個函數降序排列基於價值觀的按鍵排序基於數值轉換爲整數後的值對字典鍵進行排序

def sortfunc(dict_arg): 
    return sorted(dict_arg.keys(),key=dict_arg.get,reverse=True) 

所以我的輸出應該是['harry','tom','dick','jim']因爲「哈利」具有121的最高值和Jim有25 但我的最低值得到['dick','jim','harry','tom'],因爲值是asciibetically有序的。現在我需要找出一種方法來將值轉換爲整數,並按轉換爲整數的值對鍵進行排序。任何提示將我推向正確的方向,我感激不盡。

回答

5

你可以在這裏使用lambda功能,將值轉換爲int

mydict={'tom': '100','dick': '50','harry': '121','jim':'25'} 
print sorted(mydict, key = lambda k: int(mydict[k]), reverse = True) 

輸出

['harry', 'tom', 'dick', 'jim'] 
+0

SO是利用拉姆達做乾淨的唯一途徑?.. 。只是一廂情願地想通過說key = mydict.get(int)來實現....感謝你的答案。 – user3113351

+0

@thefoutheye我想你是對的。我不想通過放棄可讀性來讓事情複雜化。謝謝。 – user3113351

+0

@ user3113351不客氣:) – thefourtheye

相關問題