Signup/Sign In

Python Program to Sort Python Dictionaries by Key or Value

In this tutorial, we will learn to sort dictionaries by key or value in Python. A dictionary can be sorted based on its keys, where the value and the keys are displayed in increasing order of the keys. There is also another way to sort a dictionary and that is based on the values where the keys and the values are displayed in increasing order of the values.

Let's see the input-output format for sorting the dictionary.

Input: {'x': 23, 'y': 60, 'z': 12}

Output: (z, 12) (x, 23) (y, 60)

Approach 1: sorting using the keys

We will be sorting the keys and the values in increasing the order of keys. We will be using the sorted() method to sort the keys. Pass the variable that will store keys in this method. It will return the keys after sorting them in ascending order.

Algorithm

Follow the algorithm to understand the approach better.

Step 1- Define a variable to store keys

Step 2- Define keys and their values

Step 3- Sort keys using the sorted() method

Step 4- Print keys in sorted order and their respective values

Python Program 1

Look at the program to understand the implementation of the above-mentioned approach.

key_value={}

key_value[5] = 10      
key_value[3] = 8
key_value[6] = 77
key_value[4] = 23
key_value[2] = 9     
key_value[1] = 43
 
print("sorting on the basis of keys")

for i in sorted(key_value) :
    print ((i, key_value[i]), end =" ")


sorting on the basis of keys
(1, 43) (2, 9) (3, 8) (4, 23) (5, 10) (6, 77)

Approach 2: sorting using the value

In this, we will sort using the value and display the keys and values in increasing order of the value. We will be using the items() method to get the keys and values from the dictionary. To sort the values, we will be using the sorted() method. To get keys of a particular value we have used a lambda function.

Algorithm

Follow the algorithm to understand the approach better.

Step 1- Define a dictionary

Step 2- Define keys and their values

Step 3- Sort values using the sorted() method

Step 4- Print the keys and their respective values

Python Program 2

Look at the program to understand the implementation of the above-mentioned approach.

key_value={}

key_value[5] = 10      
key_value[3] = 8
key_value[6] = 77
key_value[4] = 23
key_value[2] = 9     
key_value[1] = 43
 
print("sorting on the basis of values")

print(sorted(key_value.items(), key=lambda keyval: (keyval[1], keyval[0])))


sorting on the basis of values
[(3, 8), (2, 9), (5, 10), (4, 23), (1, 43), (6, 77)]

Conclusion

In this tutorial, we have seen how to sort a dictionary using keys and values. We have seen how to use the sorted() method to sort the keys or values in ascending order.