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']