用python对字典进行排序

Sorting a dictionary in python

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Python: Sort a dictionary by value

我需要按值按降序对原始字典进行排序。作为键,我有数字,作为值,我有一些日期和时间(字符串)。这意味着我有:

1
{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'}

我想要:

1
{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'}

请看一下时间(值)。我想按降序排列时间。这意味着,最近一次是第一次。

事先谢谢!


1
2
3
4
5
6
7
8
9
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)

这个结果列表中的元组(key,value):

1
2
3
4
[(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')]

dictPython自带的词典是不是有序的,所以你不能说,你需要一个不同的容器。

你可以用Python 2.7 3.1 collections.ordereddict或使用。这是早期的版本收集的国有企业。