Sort a List in Python

In Python, you can sort a list using the sort() method or the sorted() function.

Using sort() method

The sort() method sorts the list in place, modifying the original list. It doesn’t return a new list.

my_list = [50, 10, 40, 20, 30]

my_list.sort()
print(my_list) # Output: [10, 20, 30, 40, 50]

To sort the list in descending order, you can use the reverse parameter.

my_list = [50, 10, 40, 20, 30]

my_list.sort(reverse=True)
print(my_list) # Output: [50, 40, 30, 20, 10]

The sort() method is faster than sorted() function because it modifies the list in place, avoiding the overhead of creating a new list.

Using sorted() function

The sorted() function returns a new sorted list without modifying the original list.

my_list = [50, 10, 40, 20, 30]

sorted_list = sorted(my_list)
print(sorted_list) # Output: [10, 20, 30, 40, 50]

To sort a list in descending order, you can use the reverse parameter with the value True.

my_list = [50, 10, 40, 20, 30]

sorted_list = sorted(my_list, reverse=True)
print(sorted_list) # Output: [50, 40, 30, 20, 10]

Sorting with a key

Both sort() and sorted() support a key parameter, which specifies a function that is applied to each element in the list to determine the sorting criteria.

my_list = ["banana", "apple", "watermelon", "kiwi"]

# Sort by word length
my_list.sort(key=len)
print(my_list) # Output: ['kiwi', 'apple', 'banana', 'watermelon']

You can also do the same with the sorted() function.

my_list = ["banana", "apple", "watermelon", "kiwi"]

# Sort by word length
new_list = sorted(my_list, key=len)
print(new_list) # Output: ['kiwi', 'apple', 'banana', 'watermelon']

Choosing the right method

Use sort() method when you want to sort the list directly and modify the original list. It is faster than sorted() function because it avoids the overhead of creating a new list.

Use sorted() function if you need a new sorted list without modifying the original list.