itemgetter from Python’s operator module provides a convenient way to sort a list of dictionaries based on one or more dictionary values. It works with the sorted() function and can sort data in ascending or descending order.
Example 1: Sort by a Single Key
from operator import itemgetter
d = [
{"name": "Nandini", "age": 20},
{"name": "Manjeet", "age": 20},
{"name": "Nikhil", "age": 19}
]
print("Sorted by age: ",sorted(d, key=itemgetter('age')))
Output
Sorted by age: [{'name': 'Nikhil', 'age': 19}, {'name': 'Nandini', 'age': 20}, {'name': 'Manjeet', 'age': 20}]
Explanation: sorted(data, key=itemgetter('age')): Sorts the list of dictionaries based on the 'age' key value.
Example 2: Sort by Multiple Keys
from operator import itemgetter
d = [
{"name": "Nandini", "age": 20},
{"name": "Manjeet", "age": 20},
{"name": "Nikhil", "age": 19}
]
print("Sorted by age and name: ",sorted(d, key=itemgetter('age', 'name')))
Output
Sorted by age and name: [{'name': 'Nikhil', 'age': 19}, {'name': 'Manjeet', 'age': 20}, {'name': 'Nandini', 'age': 20}]
Example 3: Sort in Descending Order
from operator import itemgetter
d = [
{"name": "Nandini", "age": 20},
{"name": "Manjeet", "age": 20},
{"name": "Nikhil", "age": 19}
]
print("Sorted by age (descending): ", sorted(d, key=itemgetter('age'), reverse=True))
Output
Sorted by age (descending): [{'name': 'Nandini', 'age': 20}, {'name': 'Manjeet', 'age': 20}, {'name': 'Nikhil', 'age': 19}]