2012-09-27 18 views
2

我需要排序一個字典,其中鍵是用字符串表示的級分,並且需要通過其數值來排序:如何按值排序字典,當鍵是由字符串表示的分數?

即:

exp_time = {"2":10, "1/2":5:, "2.5":11, "1/200":9, "15":3, "1/30":6} 

結果應該是這樣的(降序):

15 
2.5 
2 
1/2 
1/30 
1/200 
+0

'dict'的本身不能進行排序,雖然他們的密鑰列表即可。 – martineau

+0

您可能也對[python中的按鍵排序字典](http://stackoverflow.com/q/1319763/355230)中的問題的答案感興趣。 – martineau

回答

12
>>> import fractions 
>>> exp_time = {"2":10, "1/2":5, "2.5":11, "1/200":9, "15":3, "1/30":6} 
>>> sorted(exp_time, key=fractions.Fraction, reverse=True) 
['15', '2.5', '2', '1/2', '1/30', '1/200'] 
+2

Python標準庫FTW。 – orlp

+2

+1,我不知道「分數」模塊。我即將發佈相同的答案,但手動執行'fractions.Fraction'。 –

+1

值得一提的是,標準字典是**無序**。如果所有OP關心的是這個最終列表,那麼應該使用像'collections.OrderedDict'這樣的有序字典(Python 2.7+)。 –