Sorting Lists in Python: Alphanumeric and Ascending Order
Discover how to sort lists in Python using the sort()
method. This guide explains how to arrange list items alphanumerically and in ascending order by default. Learn with a practical example of sorting a list of fruits alphabetically and see the results.
Python - Sort Lists
Sort List Alphanumerically
List objects have a sort()
method that will sort the list alphanumerically, ascending, by default:
Example
Sort the list alphabetically:
thislist = ["grape", "apple", "kiwi", "pear", "banana"]
thislist.sort()
print(thislist)
Output
['apple', 'banana', 'grape', 'kiwi', 'pear']
Example
Sort the list numerically:
thislist = [42, 16, 75, 88, 30]
thislist.sort()
print(thislist)
Output
[16, 30, 42, 75, 88]
Sort Descending
To sort in descending order, use the keyword argument reverse = True
:
Example
Sort the list in descending order:
thislist = ["grape", "apple", "kiwi", "pear", "banana"]
thislist.sort(reverse = True)
print(thislist)
Output
['pear', 'kiwi', 'grape', 'banana', 'apple']
Example
Sort the list in descending order:
thislist = [42, 16, 75, 88, 30]
thislist.sort(reverse = True)
print(thislist)
Output
[88, 75, 42, 30, 16]
Customize Sort Function
You can also customize your own function by using the keyword argument key = function
. The function will return a number that will be used to sort the list (the lowest number first):
Example
Sort the list based on how close the number is to 50:
def myfunc(n):
return abs(n - 50)
thislist = [101, 48, 77, 83, 27]
thislist.sort(key = myfunc)
print(thislist)
Output
[48, 27, 77, 83, 101]
Case Insensitive Sort
By default, the sort()
method is case sensitive, resulting in all capital letters being sorted before lowercase letters:
Example
Case sensitive sorting can give an unexpected result:
thislist = ["banana", "Orange", "kiwi", "Cherry"]
thislist.sort()
print(thislist)
Output
['Cherry', 'Orange', 'banana', 'kiwi']
Luckily, we can use built-in functions as key functions when sorting a list. If you want a case-insensitive sort function, use str.lower
as a key function:
Example
Perform a case-insensitive sort of the list:
thislist = ["banana", "Orange", "kiwi", "Cherry"]
thislist.sort(key = str.lower)
print(thislist)
Output
['banana', 'Cherry', 'kiwi', 'Orange']
Reverse Order
If you want to reverse the order of a list, regardless of the alphabet, use the reverse()
method. This method reverses the current sorting order of the elements.
Example
Reverse the order of the list items:
thislist = ["banana", "Orange", "kiwi", "Cherry"]
thislist.reverse()
print(thislist)
Output
['Cherry', 'kiwi', 'Orange', 'banana']