开发者

Sorting a dictionary in python [duplicate]

This question already has answers here: Closed 11 years ago.

Possible Duplicate:

Python: Sort a dictionary by value

I need to sort by values a original dictionary on a des开发者_JAVA百科cending order.

As keys I have numbers and as values I have some date and time (string).

This means I have:

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

And I want to have:

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

Please, look at the times (value). I want to sort the times on a descending order. This means, the most recent time first.

Thanks in advance!


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)

This results in a list of (key, value) tuples:

[(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 builtin dict dictionaries aren't ordered, so you cannot do that, you need a different container.

With Python 3.1 or 2.7 you can use collections.OrderedDict. For earlier version see this recipe.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜