我需要按键排序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