![](/img/trans.png)
[英]Is there a way to sort a dictionary by keys if the keys are numbers in python?
[英]Python, how to sort dictionary by keys, when keys are floating point numbers in scientific format?
當鍵是科學格式的浮點數時,我需要按鍵對Python字典進行排序。
例:
a={'1.12e+3':1,'1.10e+3':5,'1.19e+3':7,...}
我需要保持鍵值鏈接不變。
最簡單的方法是什么?
可能只需轉換回一個數字:
sorted(a, key = lambda x: float(x))
['1.10e+3', '1.12e+3', '1.19e+3']
這只是給你一個鍵的排序副本。 我不確定你是否可以寫入字典並在其中更改其鍵列表keys()
字典上的keys()
返回的列表)。 聽起來有點邪惡。
您可以按浮點值對(key, value)
對進行排序
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)]
我想你最終還是想要漂浮物,所以你可以立即轉換它們:
print sorted((float(x),y) for x,y in a.iteritems())
# [(1100.0, 5), (1120.0, 1), (1190.0, 7)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.