浮点字典值的升序排序

1 投票
4 回答
3301 浏览
提问于 2025-04-17 12:02

我有一个字典,格式是这样的:

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), ...]

字典是不能排序的,所以你需要用其他的数据结构来存储你的键值对。

撰写回答