2024-05-15 13:02:07 发布
网友
当键是科学格式的浮点数时,我需要按键对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)对进行排序
(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)]
可能只是简单地转换回一个数字:
这只是给你一份钥匙的分类副本。我不确定您是否可以写入字典并将其键列表(由字典上的
keys()
返回的列表)更改到位。听起来有点邪恶。可以按浮点值对
(key, value)
对进行排序我想你最终还是想要浮点数,这样你就可以马上转换它们:
相关问题 更多 >
编程相关推荐