Python | sort list of tuple based on sum
Last Updated :
12 Jul, 2025
Given, a list of tuple, the task is to sort the list of tuples based on the sum of elements in the tuple.
Examples:
Input: [(4, 5), (2, 3), (6, 7), (2, 8)]
Output: [(2, 3), (4, 5), (2, 8), (6, 7)]
Input: [(3, 4), (7, 8), (6, 5)]
Output: [(3, 4), (6, 5), (7, 8)]
# Method 1: Using bubble sort Using the technique of Bubble Sort to we can perform the sorting. Note that each tuple is an element in the given list. Access the elements of each tuple using the nested loops. This performs the in-place method of sorting. The time complexity is similar to the Bubble Sort i.e. O(n^2).
Python3
# Python code to sort list of tuple based on sum of element in tuple.
# Input list initialisation
Input = [(4, 5), (2, 3), (6, 7), (2, 8)]
print("The original list of tuple is ")
print(Input)
# getting length of list of tuples
lst = len(Input)
# Bubble sort
for i in range(lst):
for j in range(lst-i-1):
if (Input[j][0]+Input[j][1]) > (Input[j+1][0]+Input[j+1][1]):
Input[j], Input[j+1] = Input[j+1], Input[j]
# print output
print("\nThe answer is")
print(Input)
Output:
The original list of tuple is
[(4, 5), (2, 3), (6, 7), (2, 8)]
The answer is
[(2, 3), (4, 5), (2, 8), (6, 7)]
# Method 2: Using sorted() method This is the most basic efficient and short method to achieve the solution to this task. In this, we pass lambda as key to the list of tuples.
Python3
# Python code to sort list of tuple based on sum of element in tuple.
# Input list initialisation
Input = [(4, 5), (2, 3), (6, 7), (2, 8)]
print("The original list of tuple is ")
print(Input)
# Passing lambda as key to sort list of tuple
print("\nThe answer is")
print(sorted(Input, key = lambda x:x[0] + x[1]))
Output:
The original list of tuple is
[(4, 5), (2, 3), (6, 7), (2, 8)]
The answer is
[(2, 3), (4, 5), (2, 8), (6, 7)]
# Method 3: Using sort() method While sorting via this method the actual content of the tuple is changed, and just like the bubble sort, the in-place method of the sort is performed.
Python3
# Python code to sort list of tuple based on sum of element in tuple.
# Input list initialisation
Input = [(4, 5), (2, 3), (6, 7), (2, 8)]
print("The original list of tuple is ")
print(Input)
# Passing lambda as key to sort list of tuple
Input.sort(key = lambda x: x[0] + x[1])
# Printing output
print("\nThe answer is")
print(Input)
Output:
The original list of tuple is
[(4, 5), (2, 3), (6, 7), (2, 8)]
The answer is
[(2, 3), (4, 5), (2, 8), (6, 7)]
Approach#4: Using sum()
Create a new list of tuples where the first element is the sum of each tuple and the second element is the original tuple. Sort the new list based on the first element (the sum). Extract and return only the original tuples from the sorted list.
Algorithm
1. Define a function that takes a list of tuples as input.
2. Create a new list of tuples where the first element is the sum of each tuple and the second element is the original tuple.
3. Sort the new list based on the first element (the sum).
4. Extract and return only the original tuples from the sorted list.
Python3
def sort_tuples_by_sum(lst):
# create a new list of tuples where the first element is the sum of each tuple and the second element is the original tuple
sum_tuples = [(sum(t), t) for t in lst]
# sort the new list based on the first element (the sum)
sorted_sum_tuples = sorted(sum_tuples, key=lambda x: x[0])
# extract and return only the original tuples from the sorted list
return [t[1] for t in sorted_sum_tuples]
# example usage
lst = [(4, 5), (2, 3), (6, 7), (2, 8)]
print(sort_tuples_by_sum(lst))
lst = [(3, 4), (7, 8), (6, 5)]
print(sort_tuples_by_sum(lst))
Output[(2, 3), (4, 5), (2, 8), (6, 7)]
[(3, 4), (6, 5), (7, 8)]
Time Complexity: O(nlogn), where n is length of list
Space Complexity: O(n)
Similar Reads
Sort a List of Tuples by Second Item - Python The task of sorting a list of tuples by the second item is common when working with structured data in Python. Tuples are used to store ordered collections and sometimes, we need to sort them based on a specific element, such as the second item. For example, given the list [(1, 3), (4, 1), (2, 2)],
2 min read
Sort a List of Tuples by Second Item - Python The task of sorting a list of tuples by the second item is common when working with structured data in Python. Tuples are used to store ordered collections and sometimes, we need to sort them based on a specific element, such as the second item. For example, given the list [(1, 3), (4, 1), (2, 2)],
2 min read
Position Summation in List of Tuples - Python Position Summation in List of Tuples refers to the process of calculating the sum of elements at the same positions across multiple tuples in a list. This operation involves adding up the corresponding elements from each tuple.For example, consider the list of tuples [(1, 6), (3, 4), (5, 8)]. The go
3 min read
Position Summation in List of Tuples - Python Position Summation in List of Tuples refers to the process of calculating the sum of elements at the same positions across multiple tuples in a list. This operation involves adding up the corresponding elements from each tuple.For example, consider the list of tuples [(1, 6), (3, 4), (5, 8)]. The go
3 min read
Python | Sort a tuple by its float element In this article, we will see how we can sort a tuple (consisting of float elements) using its float elements. Here we will see how to do this by using the built-in method sorted() and how can this be done using in place method of sorting. Examples: Input : tuple = [('lucky', '18.265'), ('nikhil', '1
3 min read
Python - Sort list of list by specified index When working with a list of lists, we often need to sort the inner lists based on the values at a specific index. Sorting by a specified index is useful in the custom ordering of multidimensional data. In this article, we will explore different ways to sort a list of lists by a specified index in Py
3 min read