How to sort a dictionary in Python
Published on Aug. 22, 2023, 12:15 p.m.
To sort a dictionary by its values in Python
To sort a dictionary by its values in Python, you can use the sorted() function with the key argument. Here’s an example:
my_dict = {'apple': 3, 'banana': 2, 'cherry': 1}
sorted_dict = sorted(my_dict.items(), key=lambda x: x[1])
print(sorted_dict)
This will output:
[('cherry', 1), ('banana', 2), ('apple', 3)]
In this example, we have a dictionary my_dict with string keys and integer values. We pass my_dict.items() to the sorted() function to sort the dictionary by its values. The key argument specifies a lambda function that returns the values of the dictionary items. The resulting sorted_dict is a list of tuples containing the key-value pairs of the original dictionary, sorted by their values in ascending order.
Alternatively, you can use the items() method of the dictionary to get a list of its items, sort the list using the key argument, and then create a new dictionary from the sorted list. Like this:
my_dict = {'apple': 3, 'banana': 2, 'cherry': 1}
sorted_list = sorted(my_dict.items(), key=lambda x: x[1])
sorted_dict = dict(sorted_list)
print(sorted_dict)
This will output:
{'cherry': 1, 'banana': 2, 'apple': 3}
In this example, we create a sorted list of items from the original dictionary using the sorted() function as before. We then create a new dictionary from the sorted list using the dict() constructor, which takes in a list of key-value pairs as its argument.
To sort a dictionary by its keys in Python
To sort a dictionary by its keys in Python, you can use either the sorted() function or the items() method of the dictionary. Here’s an example using sorted():
my_dict = {'apple': 3, 'banana': 2, 'cherry': 1}
sorted_dict = dict(sorted(my_dict.items()))
print(sorted_dict)
This will output:
{'apple': 3, 'banana': 2, 'cherry': 1}
In this example, we pass my_dict.items() to the sorted() function to sort the dictionary by its keys. Since the default behavior of sorted() is to sort by keys, we don’t need to specify a key argument. We then create a new dictionary from the sorted list of key-value pairs using the dict() constructor.
Alternatively, you can use the items() method of the dictionary to get a list of its items, sort the list using the key argument, and then create a new dictionary from the sorted list. Like this:
my_dict = {'apple': 3, 'banana': 2, 'cherry': 1}
sorted_list = sorted(my_dict.items())
sorted_dict = dict(sorted_list)
print(sorted_dict)
This will output the same result as before:
{'apple': 3, 'banana': 2, 'cherry': 1}
In this example, we create a sorted list of items from the original dictionary using the sorted() function as before. We then create a new dictionary from the sorted list using the dict() constructor.
To sort a list in Python
To sort a list in Python, you can use the sort() method or the sorted() function. Here are some examples:
Using the sort() method:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list)
Output:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
Using the sorted() function:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list)
print(sorted_list)
Output:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
In both examples, we have a list my_list with integer values. The sort() method sorts the list in ascending order, while the sorted() function returns a new sorted list without modifying the original list.
You can also pass an optional reverse=True argument to the sort() method or sorted() function to sort the list in descending order. For example:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort(reverse=True)
print(my_list)
Output:
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list, reverse=True)
print(sorted_list)
Output:
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]