Let’s say you have a dictionary of values read from two fields in a database: a string field and a numeric field. The string field is unique, so that is the key to the dictionary.
Sort a dictionary by value in python
Let’s say you have a dictionary x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
and you want to sort it by using the value.
To sort a dictionary by value in python, use the sorted() function along with the lambda expression. It will sort out all the dictionaries by their value not keys.
Here is the python code that does exactly what we have described. We have used the sorted() function and the item() function.
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_dict={k: v for k, v in sorted(x.items(), key=lambda item: item[1])}
print(sorted_dict)
Output of the code
{0: 0, 2: 1, 1: 2, 4: 3, 3: 4}
The Most Simplest way to sort a Dictionary by its values
TO sort a dictionary by its value in python, Then follow the following steps:
Step No 1: get the Values of Dict
Step No 2: sort the items in the dictionary by using the values
Here is a quick python example that explains how to sort a python dictionary by its values.
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_dict=dict(sorted(x.items(), key=lambda item: item[1]))
print(sorted_dict)
Output of the code
{0: 0, 2: 1, 1: 2, 4: 3, 3: 4}
Bonus 1: Sort a Python dictionary by its value
If you construct a dictionary with the words as keys and the number of occurrences of each word as value, simplified here as:
from collections import defaultdict
d = defaultdict(int)
for w in text.split():
d[w] += 1
for w in sorted(d, key=d.get, reverse=True):
print(w, d[w])
Bonus 2: Sort a Python dictionary in Ascending order by its value
Use the python function sorted(d.items(), key=lambda x: x[1])
to sort a dictionary in ascending order by its values.
d={1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
a_d=sorted(d.items(), key=lambda x: x[1])
print(a_d)
Bonus 3: Sort a python Dictionary in descending order
To sort it in descending order just add reverse=True:
d = {'one':1,'three':3,'five':5,'two':2,'four':4}
a = sorted(d.items(), key=lambda x: x[1], reverse=True)
print(a)
Summary and conclusion
IN this python article, you have seen different methods for sorting a dictionary by its values. If you have any questions please let me know in the comment section.
I am a software Engineer having 4+ Years of Experience in Building full-stack applications.