For working professionals
For fresh graduates
More
13. Print In Python
15. Python for Loop
19. Break in Python
23. Float in Python
25. List in Python
27. Tuples in Python
29. Set in Python
53. Python Modules
57. Python Packages
59. Class in Python
61. Object in Python
73. JSON Python
79. Python Threading
84. Map in Python
85. Filter in Python
86. Eval in Python
96. Sort in Python
101. Datetime Python
103. 2D Array in Python
104. Abs in Python
105. Advantages of Python
107. Append in Python
110. Assert in Python
113. Bool in Python
115. chr in Python
118. Count in python
119. Counter in Python
121. Datetime in Python
122. Extend in Python
123. F-string in Python
125. Format in Python
131. Index in Python
132. Interface in Python
134. Isalpha in Python
136. Iterator in Python
137. Join in Python
140. Literals in Python
141. Matplotlib
144. Modulus in Python
147. OpenCV Python
149. ord in Python
150. Palindrome in Python
151. Pass in Python
156. Python Arrays
158. Python Frameworks
160. Python IDE
164. Python PIP
165. Python Seaborn
166. Python Slicing
168. Queue in Python
169. Replace in Python
173. Stack in Python
174. scikit-learn
175. Selenium with Python
176. Self in Python
177. Sleep in Python
179. Split in Python
184. Strip in Python
185. Subprocess in Python
186. Substring in Python
195. What is Pygame
197. XOR in Python
198. Yield in Python
199. Zip in Python
Understanding data structures is pivotal to mastering Python programming. One such fundamental data structure is the dictionary. Knowing how to sort dictionary by value in Python can elevate the efficiency and readability of your code. This tutorial dives into the intricate nuances of sorting dictionaries by values in Python, a must-know for every Python enthusiast.
In Python, dictionaries are akin to real-world dictionaries, where you have a ‘key’ and its associated ‘value’. Though dictionaries are inherently unordered, there are scenarios where you might want to sort them, particularly by values, to meet specific requirements or enhance data analysis. This tutorial takes you through each of these situations in detail.
Dictionaries serve as a key player in data storage in Python. Each key-value pair holds its unique significance. Let’s delve into why sorting dictionaries becomes imperative:
Moreover, the intricacies of sorting dictionaries extend beyond the mere action of sorting. One can sort:
To sort a dictionary by its keys in Python, you can use the sorted() function along with a dictionary comprehension. Here's an example:
Code:
# Original dictionary
my_dict = {"banana": 3, "apple": 1, "cherry": 2}
# Sort the dictionary by keys
sorted_dict = {key: my_dict[key] for key in sorted(my_dict)}
print(sorted_dict)
In this example, the sorted() function sorts the dictionary's keys alphabetically, and a new dictionary is created with the sorted keys. sorted(my_dict) sorts the keys of the my_dict dictionary alphabetically. A new dictionary, sorted_dict, is created using dictionary comprehension to maintain the original key-value pairs with sorted keys.
This is similar to the example above but with a focus on sorting the dictionary and not necessarily creating a new one:
Code:
# Original dictionary
my_dict = {"banana": 3, "apple": 1, "cherry": 2}
# Sort the dictionary by keys in place
my_dict = {key: my_dict[key] for key in sorted(my_dict)}
print(my_dict)
In this code, my_dict dictionary is updated with its keys sorted in alphabetical order.
If you only want to display the sorted keys without altering the original dictionary, you can do it like this:
Code:
# Original dictionary
my_dict = {"banana": 3, "apple": 1, "cherry": 2}
# Get sorted keys
sorted_keys = sorted(my_dict.keys())
print(sorted_keys)
To display the sorted keys without modifying the original dictionary, you can use the sorted() function with my_dict.keys(). The sorted keys are stored in the sorted_keys variable and can be printed.
Code:
# Original dictionary
my_dict = {"banana": 3, "apple": 1, "cherry": 2}
# Sort the dictionary by keys and create a list of key-value pairs
sorted_items = sorted(my_dict.items())
print(sorted_items)
The sorted() function is used on my_dict.items() to create a list of key-value pairs sorted by keys.
To sort dictionary by value in Python, you can use the sorted() function with a custom sorting key. Here is an example:
Code:
# Original dictionary
my_dict = {"banana": 3, "apple": 1, "cherry": 2}
# Sort the dictionary by values
sorted_dict = {key: val for key, val in sorted(my_dict.items(), key=lambda x: x[1])}
print(sorted_dict)
In the above example, the sorted() function sorts the dictionary by values, creating a new dictionary with keys sorted by their corresponding values. The code sorts the dictionary items by values in ascending order, creating a new dictionary sorted_dict with keys ordered by their corresponding values.
Code:
# Original dictionary
my_dict = {"banana": 3, "apple": 1, "cherry": 2}
# Sort the dictionary by values and create a list of key-value pairs
sorted_items = sorted(my_dict.items(), key=lambda x: x[1])
print(sorted_items)
In this example, both keys and values are sorted in alphabetical order based on values.
The sorted() function is used on my_dict.items() with a custom sorting key that sorts by the second element (value) of each pair.
In this example, we have a dictionary of students where each student is represented by a nested dictionary. We want to sort the students by their ages (inner key).
Code:
# Original dictionary with nested dictionaries
students = {
"John": {"age": 25, "grade": "A"},
"Alice": {"age": 22, "grade": "B"},
"Bob": {"age": 28, "grade": "B"},
}
# Sort the dictionary by student age
sorted_students = {key: value for key, value in sorted(students.items(), key=lambda x: x[1]["age"])}
print(sorted_students)
This code sorts the students by age and creates a new dictionary with students ordered by their ages.
In this example, we have a dictionary where values are complex data types like tuples. We want to sort the dictionary based on a specific element within the tuple.
Code:
# Original dictionary with complex values (tuples)
data = {
"item1": (3, "apple"),
"item2": (1, "banana"),
"item3": (2, "cherry"),
}
# Sort the dictionary by the second element (string) in the tuple
sorted_data = {key: value for key, value in sorted(data.items(), key=lambda x: x[1][1])}
print(sorted_data)
This code sorts the dictionary by the second element in the tuple (the string) and creates a new dictionary with items ordered alphabetically.
In this example, we have a dictionary where values are lists, and we want to sort the dictionary by the length of the lists.
Code:
# Original dictionary with lists as values
data = {
"list1": [1, 2, 3],
"list2": [4, 5],
"list3": [6, 7, 8, 9],
}
# Sort the dictionary by the length of the lists
sorted_data = {key: value for key, value in sorted(data.items(), key=lambda x: len(x[1]))}
print(sorted_data)
This code sorts the dictionary by the length of the lists and creates a new dictionary with lists ordered by their lengths.
These examples demonstrate more complex sorting scenarios with dictionaries, including nested dictionaries, complex data types within values, and sorting based on custom criteria.
In this example, we have a dictionary where each key corresponds to a person's name, and each value is a dictionary containing attributes like age, city, and gender. We want to sort the dictionary based on the age of each person.
Code:
# Original dictionary with nested dictionaries
people = {
"John": {"age": 25, "city": "New York", "gender": "Male"},
"Alice": {"age": 22, "city": "Los Angeles", "gender": "Female"},
"Bob": {"age": 28, "city": "Chicago", "gender": "Male"},
}
# Sort the dictionary by the age of each person
sorted_people = {key: value for key, value in sorted(people.items(), key=lambda x: x[1]["age"])}
print(sorted_people)
This code sorts the dictionary based on the age of each person, creating a new dictionary with people ordered by their ages.
In this example, we have a dictionary with complex values representing products. We want to sort the products based on their prices.
Code:
# Original dictionary with complex values representing products
products = {
"product1": {"name": "Apple", "price": 1.0, "category": "Fruit"},
"product2": {"name": "Banana", "price": 0.5, "category": "Fruit"},
"product3": {"name": "Laptop", "price": 1000.0, "category": "Electronics"},
}
# Sort the dictionary by product price
sorted_products = {key: value for key, value in sorted(products.items(), key=lambda x: x[1]["price"])}
print(sorted_products)
This code sorts the dictionary of products based on their prices, creating a new dictionary with products ordered by price.
In this example, we have a dictionary where the values are custom objects of a class called Person. We want to sort the dictionary based on a specific attribute of the Person objects, such as their ages.
Code:
# Custom class definition
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# Original dictionary with custom objects as values
people = {
"person1": Person("John", 25),
"person2": Person("Alice", 22),
"person3": Person("Bob", 28),
}
# Sort the dictionary by the age attribute of the custom objects
sorted_people = {key: value for key, value in sorted(people.items(), key=lambda x: x[1].age)}
print(sorted_people)
This code sorts the dictionary of custom objects based on the age attribute of the Person objects, creating a new dictionary with people ordered by age.
Sorting dictionaries by value in Python is more than just a coding technique; it’s an asset in data handling, ensuring streamlined operations, efficient data analysis, and enhanced readability. As the world of Python continues to grow, mastering such intricacies becomes paramount. Consider delving deeper into Python’s world with upGrad’s comprehensive courses, equipping yourself with the knowledge to tackle real-world challenges adeptly.
1. Sort dictionary by value in Python example
Utilize the sorted() function combined with a lambda function: sorted(dict.items(), key=lambda x: x[1]).
2. Sort dictionary by value python descending
Use the reverse=True parameter with the sorted() function.
3. Sort dictionary by key Python
Simply use: sorted(dict.items()).
4. Python sort dictionary by key=lambda
It refers to using a lambda function to specify the key for sorting: sorted(dict.items(), key=lambda x: x[0]).
5. Sort dictionary by value python without lambda
One can use itemgetter: from operator import itemgetter and then sorted(dict.items(), key=itemgetter(1)).
Take our Free Quiz on Python
Answer quick questions and assess your Python knowledge
Author
Talk to our experts. We are available 7 days a week, 9 AM to 12 AM (midnight)
Indian Nationals
1800 210 2020
Foreign Nationals
+918045604032
1.The above statistics depend on various factors and individual results may vary. Past performance is no guarantee of future results.
2.The student assumes full responsibility for all expenses associated with visas, travel, & related costs. upGrad does not provide any a.