How to Sort a List of Dictionaries By Field in Python
Suppose we have a list of dictionaries in Python.
lst = [
{'id': 2, 'dog': 'corgi'},
{'id': 5, 'dog': 'shih tzu'},
{'id': 3, 'dog': 'pug'}
]
We want to sort this list of dictionaries by the key id
.
sorted()
with lambda
We can use the sorted()
function’s key
parameter to do this.
sorted_lst = sorted(lst, key=lambda k: k['id'])
sorted()
with itemgetter
Instead of using a lambda
function, we can use itemgetter
to identify the key to sort by.
from operator import itemgetter
sorted_lst = sorted(lst, key=itemgetter('id'))
This can slightly simplify our code, but it functions exactly the same.
Sort in Descending Order
Finally, we can sort in descending order using the sorted()
function’s reverse
parameter.
sorted_lst = sorted(lst, key=lambda k: k['id'], reverse=True)
from operator import itemgetter
sorted_lst = sorted(lst, key=itemgetter('id'), reverse=True)