tags:

views:

321

answers:

1

[ {'time':33}, {'time':11}, {'time':66} ]

How to sort by the "time" element, DESC.

+23  A: 

Like this:

from operator import itemgetter
l = sorted(l, key=itemgetter('time'), reverse=True)

Or:

l = sorted(l, key=lambda a: a['time'], reverse=True)

output:

[{'time': 66}, {'time': 33}, {'time': 11}]

If you don't want to keep the original order you can use your_list.sort which modifies the original list instead of creating a copy like sorted(your_list)

l.sort(key=lambda a: a['time'], reverse=True)
Nadia Alramli
the operator.itemgetter version is preferred. It has one less function call for each element.
nosklo
@nosklo, itemgetter actually returns a function that works almost the same as lambda a: a['time'] so there isn't really much of a difference from this prospective. Both methods involves a function call for each element.
Nadia Alramli