CodesCompiler
πŸ”
HTMLCSSJavaScriptPythonSQLPHPSEOPostsBooksKids About Contact πŸš€ Get Started Free

PYTHON - Sort Lists

Python - Sort Lists

Sorting Lists in Python

Sorting a list in Python is a way to arrange the elements of the list in either ascending or descending order based on a defined criterion, such as numerical or lexicographical order.

This can be achieved using the built-in sorted() function or by calling the sort() method on the list itself, both of which modify the original list or return a new sorted list depending on the method used.

Sorting Lists Using sort() Method

The pythonsort() methodis used to sort the elements of a list in place. This means that it modifies the original list and does not return a new list.

Syntax

The syntax for using the sort() method is as follows βˆ’

PYTHON CODE
list_name.sort(key=None, reverse=False)

Where,

  • list_nameis the name of the list to be sorted.
  • key (optional)is a function that defines the sorting criterion. If provided, it is applied to each element of the list for sorting. Default is None.
  • reverse (optional)is a boolean value. If True, the list will be sorted in descending order. If False (default), the list will be sorted in ascending order.

Example of Sorting List in Lexicographical Order

In the following example, we are using the sort() function to sort the items of the list alphanumerically βˆ’

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

It will produce the following output βˆ’

PYTHON CODE
list before sort: ['physics', 'Biology', 'chemistry', 'maths']
list after sort :  ['Biology', 'chemistry', 'maths', 'physics']

Example of Sorting List in Numerical Order

In here, we are using the sort() function to sort the given list in numerical order βˆ’

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

The output produced is as shown below βˆ’

PYTHON CODE
list before sort [10, 16, 9, 24, 5]
list after sort :  [5, 9, 10, 16, 24]

Sorting Lists Using sorted() Method

The sorted() function in Python is a built-in function used to sort the elements of an iterable (such as a list, tuple, or string) and returns a new sorted list, leaving the original iterable unchanged.

Syntax

The syntax for using the sorted() method is as follows βˆ’

PYTHON CODE
sorted(iterable, key=None, reverse=False)

Where,

  • iterableis the iterable (e.g., list, tuple, string) whose elements are to be sorted.
  • key (optional)is a function that defines the sorting criterion. If provided, it is applied to each element of the iterable for sorting. Default is None.
  • reverse (optional)is a boolean value. If True, the iterable will be sorted in descending order. If False (default), the iterable will be sorted in ascending order.

Example

In the following example, we are using the sorted() function to sort a list of numbers and retrieve a new sorted list βˆ’

PYTHON CODE
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# Sorting in descending order
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)

Following is the output of the above code βˆ’

PYTHON CODE
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

Sorting List Items with Callback Function

In Python, a callback function refers to a function that is passed as an argument to another function and is invoked or called within that function

We can sort list items with a callback function by using the sorted() function or sort() function in Python. Both of these functions allows us to specify a custom sorting criterion using the β€œkey” parameter, which accepts a callback function. This callback function defines how the elements should be compared and sorted.

Example Using str.lower() askeyParameter

The str.lower() method in Python is used to convert all the characters in a string to lowercase. It returns a new string with all alphabetic characters converted to lowercase while leaving non-alphabetic characters unchanged.

In this example, we are passing the str.lower() method as an argument to the β€œkey” parameter within the sort() function βˆ’

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

It will produce the followingoutputβˆ’

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

Example Using user-defined Function askeyParameter

We can also use a user-definedfunctionas the key parameter in sort() method.

In this example, the myfunction() uses%operator to return the remainder, based on which the sorting is performed βˆ’

PYTHON CODE
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 βˆ’

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