浮点字典值的升序排序
我有一个字典,格式是这样的:
d = { 'someText': floatNumber }
其中的 floatNumber
是一个时间戳,表示从1970年1月1日开始的秒数。我想把这些时间按从早到晚的顺序整理一下。
举个例子:{'someText':0000001, 'someText1':0000002, 依此类推}
我想到的办法就是用 for k,v in dict.items()
来循环遍历,然后手动把它们排序成一个列表,但这样可能会花很多时间。如果有人能帮忙就太好了。
4 个回答
0
首先,字典默认是没有顺序的。如果你想要有顺序,可以考虑用列表,并在构建数据集时把数据放到合适的位置。否则,你可以使用 sorted
函数来排序。
sorted(dict.iteritems(), key=lambda (x, y): y)
1
一个有序字典可以用来按顺序存储条目:
>>> from collections import OrderedDict
>>> d = OrderedDict(sorted(dict.items(), key=lambda item: item[1]))
4
也许你想要的是:
import operator
values = sorted(d.items(), key=operator.itemgetter(1))
这样会生成一个排序好的元组列表,比如说:
[('someText', 1), ('someText', 2), ...]
字典是不能排序的,所以你需要用其他的数据结构来存储你的键值对。