sorted()
Takes in an iterator object, such as a list, tuple, dictionary, set, or string, and sorts it according to a parameter.
Syntax
sorted(iterable, key=None, reverse=False)
The key
and reverse
parameters are optional, and will default to None
and False
. False
sorts ascending, and True
descending. The key
takes an input function to determine the comparison key.
Example 1
sorted()
can be used on either numbers or letters, but not on a combination of the two:
my_list = ["beta", "epsilon", "alpha", "delta", "gamma"]new_list = sorted(my_list)print(new_list)# Output: ['alpha', 'beta', 'delta', 'epsilon', 'gamma']
my_list = [7,2,3,5,1,4,6]new_list = sorted(my_list)print(new_list)# Output: [1, 2, 3, 4, 5, 6, 7]
Example 2
Changing the reverse
parameter changes the order of the sort:
my_list = [7,2,3,5,1,4,6]new_list = sorted(my_list, reverse=True)print(new_list)# Output: [7, 6, 5, 4, 3, 2, 1]
Example 3
When reversed
is False
, sorted()
will sort numbers from low to high, and letters alphabetically. However, capital letters will come before lowercase letters. In order to sort all objects with the same key, use a function with the key parameter
:
my_string = "bCEad"after_sorted = sorted(my_string)print(after_sorted)# Output: ['C', 'E', 'a', 'b', 'd']after_sorted = sorted(my_string, key=str.lower)print(after_sorted)# Output: ['a', 'b', 'C', 'd', 'E']
Example 4
The key
parameter can also be used to sort by other comparisons, such as length:
my_list = ["aaa", "bb", "c"]my_sorted_list = sorted(my_list)print(my_sorted_list)# Output: ['aaa', 'bb', 'c']my_sorted_list = sorted(my_list, key=len)print(my_sorted_list)# Output: ['c', 'bb', 'aaa']
Example 5
The key
parameter can even take in custom functions:
def sorting_func(i):return i - i**2my_list = [2,1,4,3]my_sorted_list = sorted(my_list)print(my_sorted_list)# Output: [1, 2, 3, 4]my_sorted_list = sorted(my_list, key=sorting_func)print(my_sorted_list)# Output: [4, 3, 2, 1]
Codebyte Example
Sorting a list of dictionaries based on a specific key:
All contributors
- Anonymous contributorAnonymous contributor2 total contributions
- christian.dinh2476 total contributions
- Anonymous contributorAnonymous contributor3071 total contributions
- CyberRedPanda27 total contributions
- Anonymous contributor
- christian.dinh
- Anonymous contributor
- CyberRedPanda
Looking to contribute?
- Learn more about how to get involved.
- Edit this page on GitHub to fix an error or make an improvement.
- Submit feedback to let us know how we can improve Docs.