How to Sort a List in Python

2 min read 526 words

Table of Contents

In this tutorial, you will learn how to sort a list in Python, by following the below three steps:

  1. Options to sort a list in Python
    • What is the difference between “sort” and “sorted”
    • An example of using “sort”
    • An example of using “sorted”
  2. How to Sort a List in Reverse
    • Sort a list in Reverse using “sort”
    • Sort a list in Reverse using “sorted”
  3. Sort with a Custom Function using Key

1. Options to sort a list in Python

There exist two main options, those are sort() and sorted(), let’s explore them below.

What is the difference between “sort” and “sorted”

list.sort() changes the list in place and returns None.

sorted() takes an iterable and returns a new list, sorted.

An example of using “sort”

# create a list of unordered items
our_list = ["f", "a", "c", "z", "b"]

# sort the list
new_list = our_list.sort()

# print the new list
print(new_list)
# result: None

print(our_list)
# result: ['a', 'b', 'c', 'f', 'z']

Notice how it changes the list itself, but does not return a value to be placed into a new variable.

An example of using “sorted”

# create a list of unordered items
our_list = ["f", "a", "c", "z", "b"]

# sort the list
new_list = sorted(our_list)

# print the new list
print(new_list)

# result: ['a', 'b', 'c', 'f', 'z']

Notice how the changes are saved to the new list/variable.

2. How to Sort a List in Reverse

Using the above functions, it’s simple to sort a list in reverse. Just specify the reverse argument and set it to True.

Sort a List in Reverse using “sort”

# create a list of unordered items
our_list = ["f", "a", "c", "z", "b"]

# sort the list
new_list = our_list.sort(reverse=True)

print(our_list)
# result: ['z', 'f', 'c', 'b', 'a']

Sort a List in Reverse using “sorted”

# create a list of unordered items
our_list = ["f", "a", "c", "z", "b"]

# sort the list
new_list = sorted(our_list, reverse=True)

# print the new list
print(new_list)

# result: ['z', 'f', 'c', 'b', 'a']

3. Sort with a Custom Function using Key

It is also possible to implement your own sorting method. This is done by adding a key parameter and setting it to a method.

For example:

# create a list of different length items
our_list = ["fasd", "asstt", "cqasf", "zqfwsef", "ba"]

# sort the list, by `len`
new_list = sorted(our_list, key=len)

# print the new list
print(new_list)

# result: ['ba', 'fasd', 'asstt', 'cqasf', 'zqfwsef']

Just as we used sorted here, you could also have used list.sort as follows:

our_list.sort(key=len)

As before, you can also combine the reverse=True argument should you want the reverse order.

our_list.sort(key=len, reverse=True)

# or

sorted(our_list, key=len, reverse=True)

You could also swap out the use of the len method as the custom key with your own function, or lambda, to sort by some custom choice.

For example:

student_tuples = [('john', 'A', 15),('jane', 'B', 12),('dave', 'B', 10),]
sorted(student_tuples, key=lambda student: student[2]) 

# result: [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

Or in another example:

lst = [('candy','30','100'), ('apple','10','200'), ('baby','20','300')]
lst.sort(key=lambda x:x[1])
print(lst)

# result: [('apple', '10', '200'), ('baby', '20', '300'), ('candy', '30', '100')]
Tags:
Andrew
Andrew

Andrew is a visionary software engineer and DevOps expert with a proven track record of delivering cutting-edge solutions that drive innovation at Ataiva.com. As a leader on numerous high-profile projects, Andrew brings his exceptional technical expertise and collaborative leadership skills to the table, fostering a culture of agility and excellence within the team. With a passion for architecting scalable systems, automating workflows, and empowering teams, Andrew is a sought-after authority in the field of software development and DevOps.

Tags