用python对词典进行排序
可能重复:用python对词典进行排序,python,sorting,dictionary,Python,Sorting,Dictionary,可能重复: 我需要按降序对原始字典中的值进行排序。 作为键我有数字,作为值我有一些日期和时间(字符串)。 这意味着我有: {1: '2011-09-25 16:28:18', 2: '2011-09-25 16:28:19', 3: '2011-09-25 16:28:13', 4: '2011-09-25 16:28:25'} 我想要: {4: '2011-09-25 16:28:25', 2: '2011-09-25 16:28:19', 1: '2011-09-25 16:28:18'
我需要按降序对原始字典中的值进行排序。
作为键我有数字,作为值我有一些日期和时间(字符串)。
这意味着我有:
{1: '2011-09-25 16:28:18', 2: '2011-09-25 16:28:19', 3: '2011-09-25 16:28:13', 4: '2011-09-25 16:28:25'}
我想要:
{4: '2011-09-25 16:28:25', 2: '2011-09-25 16:28:19', 1: '2011-09-25 16:28:18', 3: '2011-09-25 16:28:13'}
请看一下时间(价值)。我想按降序排列时间。这意味着,最近的时间第一
提前谢谢 Python内置的
dict
字典没有排序,所以您不能这样做,您需要一个不同的容器
对于Python 3.1或2.7,您可以使用。有关早期版本,请参见此
这将产生(键、值)元组列表:
好吧,但我可以把这本字典放在新字典上或别的什么东西上订购吗?这将是一个伟大的方法。我不在乎用不同的容器。我只是不知道怎么做:/OrderedDict是按键而不是值排序的。您需要按valueOrdered显式排序!=分类。可以使用有序性对其进行排序,但要保持适度的复杂性。如果您只是偶尔需要(键、值)对进行排序(不管是什么顺序),只需使用
sorted
和。iteritems
@David:链接手册中有一个例子。但是他仍然没有告诉用户python是2还是3。。
import operator
x = { 1: '2011-09-25 16:28:18',
2: '2011-09-25 16:28:19',
3: '2011-09-25 16:28:13',
4: '2011-09-25 16:28:25',
}
sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1), reverse=True)
print(sorted_x)
[(4, '2011-09-25 16:28:25'),
(2, '2011-09-25 16:28:19'),
(1, '2011-09-25 16:28:18'),
(3, '2011-09-25 16:28:13')]