用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')]