Sort a Dictionary in the descending order of Values Python
In this tutorial, we will learn various approaches to sort a Dictionary in the descending order of Values Python
A dictionary can be sorted by values in the descending order using sorted
method in Python.
We will look at the various approaches to sort a dictionary by values in descending order in Python.
Approach 1: Sort a dictionary in the descending order of values using sorted(), items() and for loop in Python
In this approach, we will do the following to sort a dictionary in the descending order of values using sorted()
, items()
and for
loop.
In the preceding code, we perform the following steps in the order described below.
- First we define a resultant dictionary that will hold the key value pairs whose order will be in the descending order of values.
- We then define a list in which we will maintain tuples of key value pair of dictionary
- We then iterate over dictionary using
items()
and add value and then key pair as tuples to the list. - We then perform sort over the list of tuples having value and key pairs.
- We finally iterate over the sorted list of tuples and add the value key pair to the resultant dictionary by mapping second item in the tuple as key and first item in the tuple as value.
- As we need to sort by descending order of values, we have also provided the keyword argument
reverse
set toTrue
as input argument tosorted
method.
The output of the preceding code will be as follows.
We notice that the resultant dictionary has the values in the descending order with their respective values. We also notice that after sorting a dictionary by value, the results shows the students in the descending order of marks.
Approach 2: Sort a dictionary in the descending order of values using sorted(), lambda and dictionary comprehension in Python
In this approach, we will do the following to sort a dictionary in the descending order of values using sorted()
, items()
and dictionary comprehension.
Here, in the preceding code, we are sorting a dictionary by its descending order of values in Python using dictionary comprehension, sorted()
and lambda
.
We notice that the sorted method is provided with two arguments,
- The first argument is the list of tuples represented by d1.items().
- Each item in the list of tuple let's say is represented by variable name
item
. Then theitem
is of typetuple
and each element in a tuple is accessed by it's index position. In case of key and value being the items ofitem
tuple, the element at index 0, represented byitem[0]
is key and the element at index 1 represented byitem[1]
is the value. - Hence, the second argument to the sorted method,
key
is specifying to thesorted
method to perform the sort operation based on theitem[1]
which is the value amongst the key value pair. - As we need to sort by descending order of values, we have also provided the keyword argument
reverse
set toTrue
as input argument tosorted
method.
The output of the preceding code will be as follows.
We notice that the resultant dictionary has the values in the descending order with their respective values. We also notice that after sorting a dictionary by value, the results shows the students in the descending order of marks.