Sorting a dictionary in python [duplicate]
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.
精彩评论