How to sort a tuple in Python using sort() and sorted() functions

When you need to sort a tuple in Python, there are two methods that you can use:

  1. Using the sorted() function
  2. Using the list.sort() method

This tutorial will explain how to use both solutions in practice.

Using the sorted() function

The Python sorted() function is used to sort an iterable object based on the values it contained.

This function can be used to sort a tuple as follows:

my_tuple = (5, 8, 1, 0, 6)

new = sorted(my_tuple)



[0, 1, 5, 6, 8]

If you want to sort a tuple in descending order, you can specify a reverse argument as follows:

my_tuple = (5, 8, 1, 0, 6)

new = sorted(my_tuple, reverse=True)



[8, 6, 5, 1, 0]

This function can also be used to sort a list of many tuples as shown below:

list_of_tuples = [(2, 5, 1), (4, 3, 1), (2, 0, 7)]

new = sorted(list_of_tuples)



[(2, 0, 7), (2, 5, 1), (4, 3, 1)]

As you can see, the tuples are sorted by comparing the elements in the same position sequentially.

This means that Python will compare the elements in position one first, and when the elements are equal, it will compare the elements at the second position, and so forth.

When you have multiple tuples, the elements inside each tuple won’t be sorted. Only the tuples are sorted.

Using the list.sort() method

As an alternative, you can also use the list.sort() method to sort a tuple as follows:

my_tuple = (5, 8, 1, 0, 6)

my_list = list(my_tuple)


new_tuple = tuple(my_list)


When using the list.sort() method, you need to convert the tuple into a list, call the sort() method on the list, and convert the list back to a tuple.

If you try to chain the call to the sort() method, the result would be None because sort() doesn’t return any value.

The following code:

my_tuple = (5, 8, 1, 0, 6)

new_tuple = tuple(list(my_tuple).sort())


Will return a TypeError: 'NoneType' object is not iterable.

Because this method requires more steps, it’s better to use the sorted() function.

Now you’ve learned how to sort a tuple in Python. Nice work!

Take your skills to the next level ⚡️

I'm sending out an occasional email with the latest tutorials on programming, web development, and statistics. Drop your email in the box below and I'll send new stuff straight into your inbox!

No spam. Unsubscribe anytime.