2010-12-07 54 views

回答

2

您可以通過浮動值

a={'1.12e+3':1,'1.10e+3':5,'1.19e+3':7,...} 
print sorted(a.iteritems(), key=lambda (x,y):float(x)) 
# [('1.10e+3', 5), ('1.12e+3', 1), ('1.19e+3', 7)] 

我猜你想花車反正最終使你可以將它們轉換馬上的(key, value)對排序:

print sorted((float(x),y) for x,y in a.iteritems()) 
# [(1100.0, 5), (1120.0, 1), (1190.0, 7)] 
7

可能通過簡單的轉換回數字:

sorted(a, key = lambda x: float(x)) 
['1.10e+3', '1.12e+3', '1.19e+3'] 

這只是給你鑰匙的排序副本。我不確定您是否可以寫入字典並在原地更改其鍵列表(由字典上的keys()返回的列表)。聽起來有點邪惡。

+0

我需要保持鍵值鏈接不變 – Alex 2010-12-07 15:39:50