![]() |
VOOZH | about |
We are given a nested dictionary and our task is to sort a nested dictionary by multiple values in Python and print the result. In this article, we will see how to sort a nested dictionary by multiple values in Python.
Example:
Input : {'A': {'score': 85, 'age': 25},
'B': {'score': 92, 'age': 30},
'C': {'score': 78, 'age': 22}}
Output: {'C': {'score': 78, 'age': 22},
'A': {'score': 85, 'age': 25},
'B': {'score': 92, 'age': 30}}
Explanation : In above example, the nested dictionary is sorted by score in ascending order.
Below are some of the ways by which we can sort a nested dictionary by multiple values in Python:
In this example, below Python code sorts a nested dictionary (`nested_dict`) by the 'score' values in the inner dictionaries, creating a new dictionary (`sorted_nested_dict`) that reflects the sorted order. The result is then printed.
{'C': {'score': 78, 'age': 27}, 'A': {'score': 85, 'age': 25}, 'B': {'score': 92, 'age': 30}}In this example, below Python code uses dictionary comprehension to sort the nested dictionary `nested_dict` based on the 'score' and 'age' values in the inner dictionaries. The result is stored in `sorted_nested_dict` and then printed.
{'C': {'score': 78, 'age': 22}, 'A': {'score': 85, 'age': 25}, 'B': {'score': 92, 'age': 30}}In this example, below Python code uses , the collections module `OrderedDict` is used to create a sorted version (`sorted_nested_dict`) of the nested dictionary `nested_dict`. The sorting is based on the 'score' and 'age' values in the inner dictionaries, and the result is then printed.
OrderedDict([('C', {'score': 78, 'age': 22}), ('A', {'score': 85, 'age': 25}), ('B', {'score': 92, 'age': 30})])In this example, below Python code uses the Pandas library to convert the nested dictionary `nested_dict` into a DataFrame (`df`). Then, it sorts the DataFrame based on the 'score' and 'age' columns, creating `sorted_df`. Finally, it converts the sorted DataFrame back into a dictionary (`sorted_nested_dict`).
{'C': {'score': 78, 'age': 22}, 'A': {'score': 85, 'age': 25}, 'B': {'score': 92, 'age': 30}}In this example, we employ the itemgetter function from the operator module to sort the nested dictionary nested_dict based on specified keys, such as 'score' and 'age'.
{'A': {'age': 25, 'score': 85}, 'C': {'age': 22, 'score': 78}, 'B': {'age': 30, 'score': 92}}