DEV Community

Afiz
Afiz

Posted on

How to sort a list in Python

In this post we will discuss how to sort list in Python.

There are mainly two ways to sort a list in Python.

  1. sorted function
  2. sort method

1. sorted function:

This sort the given list and generate a new list, which means existing list won't be modified.

In [1]: numbers = [23, 42, 12, 121, 45, 9, 8]

In [2]: sorted(numbers)
Out[2]: [8, 9, 12, 23, 42, 45, 121]

In [3]: numbers
Out[3]: [23, 42, 12, 121, 45, 9, 8]
Enter fullscreen mode Exit fullscreen mode

As you can see in the above example Out[3] has the same numbers list.

2. sort method:

This method applies the sorting on the list and updates the existing list. This is called in place sorting.

In [4]: numbers.sort()

In [5]: numbers
Out[5]: [8, 9, 12, 23, 42, 45, 121]
Enter fullscreen mode Exit fullscreen mode

Key param:

sorted and sort methods takes an extra parameter called key. Using this key param we can control the sorting.

Example: names = ['Bob', 'Charles', 'James']. Let's say we want to sort the above list of names based on length of the each time.
Solution:

In [7]: sorted(names, key=len)
Out[7]: ['Bob', 'James', 'Charles']
Enter fullscreen mode Exit fullscreen mode

We can pass any function we want to this key. Let me know which method you like in the comments. If you like this content consider following me.

Discussion (0)