Alex Rivera | Logout

How can I sort a list of dictionaries by a value of the dictionary in Python?

Asked 2008-09-16T14:27:47.470
2856

How do I sort a list of dictionaries by a specific key's value? Given:

[{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]

When sorted by name, it should become:

[{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}]
Edit
Report

1 Answer

3746

The sorted() function takes a key= parameter

newlist = sorted(list_to_be_sorted, key=lambda d: d['name'])

Alternatively, you can use operator.itemgetter instead of defining the function yourself

from operator import itemgetter
newlist = sorted(list_to_be_sorted, key=itemgetter('name'))

For completeness, add reverse=True to sort in descending order

newlist = sorted(list_to_be_sorted, key=itemgetter('name'), reverse=True)
answered 2008-09-16T14:39:44.273

Your Answer