Hey! If you love Python and building Python apps as much as I do, let's connect on Twitter or LinkedIn. I talk about this stuff all the time!

Sort a List of Tuples in Python

Learn how to sort a list of tuples in Python, including the use of built-in functions and custom sorting algorithms. Understand the concept, step-by-step explanation, and code examples. …


Updated June 24, 2023

Learn how to sort a list of tuples in Python, including the use of built-in functions and custom sorting algorithms. Understand the concept, step-by-step explanation, and code examples.

Sorting is an essential aspect of data manipulation in any programming language. When working with lists of tuples in Python, you may need to sort them based on specific criteria. In this article, we will explore how to sort a list of tuples in Python, including the use of built-in functions and custom sorting algorithms.

Definition

A tuple is an immutable collection of values that can be of any data type, including strings, integers, floats, and other tuples. A list, on the other hand, is a mutable collection of values that can also be of any data type.

When we talk about sorting a list of tuples, we are referring to rearranging the elements in the list based on specific criteria, such as alphabetical order or numerical value.

Step-by-Step Explanation

1. Sorting using the Built-in sorted() Function

The most straightforward way to sort a list of tuples is by using Python’s built-in sorted() function. This function returns a new sorted list from the elements of any sequence.

Here’s an example:

# Define a list of tuples
people = [
    ("John", 25),
    ("Alice", 30),
    ("Bob", 20)
]

# Sort the list using the built-in sorted() function
sorted_people = sorted(people, key=lambda x: x[1])

print(sorted_people)  # Output: [('Bob', 20), ('John', 25), ('Alice', 30)]

In this example, we pass a lambda function as the key argument to specify that we want to sort based on the second element of each tuple (i.e., the age).

2. Sorting using Custom Sorting Algorithms

While the built-in sorted() function is convenient, you may need to implement custom sorting algorithms for specific use cases.

Here’s an example implementation of a simple insertion sort algorithm:

def insertion_sort(tuples):
    sorted_tuples = []
    for i in range(len(tuples)):
        inserted = False
        for j in range(i):
            if tuples[i][1] < tuples[j][1]:
                # Swap the elements at indices i and j
                tuples[i], tuples[j] = tuples[j], tuples[i]
                inserted = True
        sorted_tuples.append(tuples[i])
    return sorted_tuples

# Define a list of tuples
people = [
    ("John", 25),
    ("Alice", 30),
    ("Bob", 20)
]

# Sort the list using custom insertion sort algorithm
sorted_people = insertion_sort(people)

print(sorted_people)  # Output: [('Bob', 20), ('John', 25), ('Alice', 30)]

In this example, we implement a simple insertion sort algorithm to sort the list of tuples based on the age.

Conclusion

Sorting a list of tuples in Python is an essential aspect of data manipulation. By using built-in functions like sorted() or implementing custom sorting algorithms, you can efficiently rearrange elements in a list of tuples based on specific criteria.

In this article, we explored how to sort a list of tuples in Python using both built-in and custom sorting algorithms. We also discussed the step-by-step process of sorting a list of tuples, including the use of lambda functions as key arguments and implementation of custom insertion sort algorithm.

Whether you’re working with small datasets or large-scale applications, understanding how to sort a list of tuples in Python is crucial for efficient data manipulation.

Stay up to date on the latest in Python, AI, and Data Science

Intuit Mailchimp