Python - Sort Lists



Python List sort() Method

The sort() method of list class rearranges the items in ascending or descending order with the use of lexicographical ordering mechanism. The sorting is in-place, in the sense the rearrangement takes place in the same list object, and that it doesn't return a new object.

Syntax

list1.sort(key, reverse)

Parameters

  • Key − The function applied to each item in the list. The return value is used to perform sort. Optional

  • reverse − Boolean value. If set to True, the sort takes place in descending order. Optional

Return value

This method returns None.

Sort List Items Alphanumerically

The sort() method sorts the items of the list alphanumerically.

Example

Now let's take a look at some examples to understand how we can sort lists in Python −

list1 = ['physics', 'Biology', 'chemistry', 'maths']
print ("list before sort", list1)
list1.sort()
print ("list after sort : ", list1)

print ("Descending sort")

list2 = [10,16, 9, 24, 5]
print ("list before sort", list2)
list2.sort()
print ("list after sort : ", list2)

It will produce the following output

list before sort ['physics', 'Biology', 'chemistry', 'maths']
list after sort: ['Biology', 'chemistry', 'maths', 'physics']
Descending sort
list before sort [10, 16, 9, 24, 5]
list after sort : [5, 9, 10, 16, 24]

Sort List Items with str.lower()

In this example, the str.lower() method is used as key parameter in sort() method.

Example

list1 = ['Physics', 'biology', 'Biomechanics', 'psychology']
print ("list before sort", list1)
list1.sort(key=str.lower)
print ("list after sort : ", list1)

It will produce the following output

list before sort ['Physics', 'biology', 'Biomechanics', 'psychology']
list after sort : ['biology', 'Biomechanics', 'Physics', 'psychology']

Sort List Items with Callback Function

The user-defined function can also be used as the key parameter in sort() method.

Example

Let us use a user-defined function as the key parameter in sort() method. The myfunction() uses % operator to return the remainder, based on which the sort is done.

def myfunction(x):
   return x%10
list1 = [17, 23, 46, 51, 90]
print ("list before sort", list1)
list1.sort(key=myfunction)
print ("list after sort : ", list1)

It will produce the following output

list before sort [17, 23, 46, 51, 90]
list after sort: [90, 51, 23, 46, 17]
Advertisements