In Python, there’s an easy way to sort lists: using the sort() method. This tutorial explains how to use sort(), with examples.
We’ve covered the following in Python:
Now it’s time to find out how to sort a list.
Syntax for the sort() Method
list.sort(reverse=True|False, key=sortFunction)
Note that:
- ‘reverse’ should be a True/False boolean value and is optional
- reverse=True will sort the list descending
- The default is reverse=False
- True/False values case sensitive in Python! You must capitalize the first letter when using them
- ‘key’ is a function which defines the sorting conditions and is also optional
Sort List Alphabetically
When called on a list, the default behavior of sort is to sort the values in ascending order, numerically/alphabetically:
fruit = ['banana', 'cherry', 'apple'] fruit.sort() print(fruit) # ['apple', 'banana', 'cherry']
Sort List Descending
Set reverse=True to sort descending instead of ascending:
fruit = ['banana', 'cherry', 'apple'] fruit.sort(reverse=True) print(fruit) # ['cherry', 'banana', 'apple']
Sort List Using a Function
Custom sorting can be achieved by passing a function to sort():
# Defines a function which returns the length of given text def countLettersFunction(text): return len(text) # List of fruit fruit = ['banana', 'cherry', 'apple', 'pear', 'fig'] # Sorted using the count letters function, ascending order fruit.sort(key=countLettersFunction) print(fruit) # ['fig', 'pear', 'apple', 'banana', 'cherry'] # And with a descending sort fruit.sort(reverse=True, key=countLettersFunction) print(fruit) # ['banana', 'cherry', 'apple', 'pear', 'fig']
Sort List of Dictionaries (Objects) by Attribute Value
# Defines a function which returns the colour attribute of a fruit def colourFunction(fruit): return fruit['colour'] # List of fruit details in dictionaries fruit = [ {'name': 'Apple', 'colour': 'red'}, {'name': 'Banana', 'colour': 'yellow'}, {'name': 'Blueberry', 'colour': 'blue'}, {'name': 'Cherry', 'colour': 'red'}, {'name': 'Orange', 'colour': 'orange'} ] fruit.sort(key=colourFunction) # Will sort by the result of colourFunction, ascending print(fruit) # [ # {'name': 'Blueberry', 'colour': 'blue'}, # {'name': 'Orange', 'colour': 'orange'}, # {'name': 'Apple', 'colour': 'red'}, # {'name': 'Cherry', 'colour': 'red'}, # {'name': 'Banana', 'colour': 'yellow'} #]
- Dictionaries store data as key/value pairs
- They are a kind of object, and behave similarly to how objects are used in JavaScript, PHP, and other languages: providing information for a single entity
- Sort functions can return any type of value, and it will be sorted
Conclusion
Data sorting is one of the most useful tools in programming – from sorting shopping cart items by price for the user, to building decision-making processes based on collected data, you will use it a lot.
Simple sorting functions can be combined to create useful business logic to make your data work harder for you.