Sorting a dictionary in Python can be done in two ways:
Since dictionaries are unordered before Python 3.7, sorting creates a new dictionary with a specific order.
sorted()
function on dict.keys()
and reconstruct the dictionary.my_dict = {"b": 2, "a": 1, "c": 3}
# Sorting by keys (ascending order)
sorted_dict = dict(sorted(my_dict.items()))
print(sorted_dict) # Output: {'a': 1, 'b': 2, 'c': 3}
* Default sorting is in ascending order (A → Z, 0 → 9).
* Use reverse=True
for descending order.
(key, value)
pairs.my_dict = {"b": 2, "a": 1, "c": 3}
# Sorting by values (ascending order)
sorted_by_values = dict(sorted(my_dict.items(), key=lambda item: item[1]))
print(sorted_by_values) # Output: {'a': 1, 'b': 2, 'c': 3}
* Sorting is based on values instead of keys.
* Use reverse=True
for descending order.
sorted_dict_desc = dict(sorted(my_dict.items(), reverse=True))
print(sorted_dict_desc) # Output: {'c': 3, 'b': 2, 'a': 1}
sorted_by_values_desc = dict(sorted(my_dict.items(), key=lambda item: item[1], reverse=True))
print(sorted_by_values_desc) # Output: {'c': 3, 'b': 2, 'a': 1}
Sorting Criteria | Code |
---|---|
Sort by Keys (Ascending) | dict(sorted(my_dict.items())) |
Sort by Keys (Descending) | dict(sorted(my_dict.items(), reverse=True)) |
Sort by Values (Ascending) | dict(sorted(my_dict.items(), key=lambda item: item[1])) |
Sort by Values (Descending) | dict(sorted(my_dict.items(), key=lambda item: item[1], reverse=True)) |