我需要按鍵排序Python字典,當鍵是科學格式的浮點數時。Python,如何按鍵排序字典,當鍵是科學格式的浮點數?
例子:
a={'1.12e+3':1,'1.10e+3':5,'1.19e+3':7,...}
我需要保持鍵值的鏈接不變。
這樣做最簡單的方法是什麼?
我需要按鍵排序Python字典,當鍵是科學格式的浮點數時。Python,如何按鍵排序字典,當鍵是科學格式的浮點數?
例子:
a={'1.12e+3':1,'1.10e+3':5,'1.19e+3':7,...}
我需要保持鍵值的鏈接不變。
這樣做最簡單的方法是什麼?
您可以通過浮動值
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)]
可能通過簡單的轉換回數字:
sorted(a, key = lambda x: float(x))
['1.10e+3', '1.12e+3', '1.19e+3']
這只是給你鑰匙的排序副本。我不確定您是否可以寫入字典並在原地更改其鍵列表(由字典上的keys()
返回的列表)。聽起來有點邪惡。
我需要保持鍵值鏈接不變 – Alex 2010-12-07 15:39:50
請提高英語水平。 – 2010-12-07 15:42:27