Write a Python Program to Sort a Dictionary by Value

Sorting a dictionary by value is a common task in Python.

This can be achieved in a simple way using the built-in sorted() function and a lambda function.

Let’s say we have a dictionary with some key-value pairs:

my_dict = {'apple': 10, 'orange': 20, 'banana': 5, 'kiwi': 15}

To sort this dictionary by its values, we can use the sorted() function as follows:

sorted_dict = sorted(my_dict.items(), key=lambda x: x[1])

Here, we are passing the my_dict.items() as the first argument to sorted() function which returns a list of tuples containing key-value pairs of the dictionary.

Then, we pass the key parameter to the sorted() function which takes a lambda function.

This lambda function extracts the second element of each tuple, which is the value, and uses it for sorting the dictionary.

Finally, the sorted() function returns a list of sorted tuples.

Now, if we print the sorted_dict, we will get the following output:

[('banana', 5), ('apple', 10), ('kiwi', 15), ('orange', 20)]

As we can see, the dictionary is sorted by its values in ascending order.

If we want to sort the dictionary in descending order, we can simply pass the reverse=True parameter to the sorted() function, like this:

sorted_dict = sorted(my_dict.items(), key=lambda x: x[1], reverse=True)

Now, if we print the sorted_dict, we will get the following output:

[('orange', 20), ('kiwi', 15), ('apple', 10), ('banana', 5)]

As we can see, the dictionary is sorted by its values in descending order.


In conclusion, sorting a dictionary by value in Python is a simple task that can be achieved using the sorted() function and a lambda function.

By understanding this concept, we can easily sort any dictionary by its values in both ascending and descending order.