簡體   English   中英

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM