Python | sort the list of tuples by sum



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 Bubble Sort technique, we can perform a sort. Note that each tuple is an element in the given list. Access the elements of each tuple using nested loops. This is done by the in-place sorting method. Time complexity is similar to bubble sort, i.e. O(n^2).

# Python code to sort the list of tuples by based on the sum of the elements in the tuple.

 
# Initialize the input list

Input = [( 4 , 5 ), ( 2 , 3 ), ( 6 , 7 ), ( 2 , 8 )] 

  

print ( " The original list of tuple is " )

print ( Input )

  
# get the length of the 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 ]) & gt; ( Input [j + 1 ] [ 0 ] + Input [j + 1 ] [ 1 ] ):

Input [j] , Input [j + 1 ] = Input [j + 1 ], Input [j]

  

  
# print out

print ( "The answer is" )

print ( Input )

Exit:

 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 this task ... 
In this we pass the lambda as the key to the list of tuples.

# Python code to sort the list of tuples based on the sum of the elements in the tuple.

 
# Initialize the input list

Input = [( 4 , 5 ), ( 2 , 3 ), ( 6 , 7 ), ( 2 , 8 )] 

  

print ( " The original list of tuple is " )

print ( Input )

 
# Passing lambda as key to sort the list of tuples

print ( "The answer is" )

print ( sorted ( Input , key = lambda x: x [ 0 ] + x [ 1 ]))

Exit:

 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 the

# Python code to sort the list of tuples based on the sum of the elements in the tuple.

 
# Initialize the list Input

Input = [( 4 , 5 ), ( 2 , 3 ), ( 6 , 7 ), ( 2 , 8 )] 

 

print ( "The original list of tuple is" )

print ( Input )

 
# Passing lambda as key to sort the list of tuples

Input < / code> . sort (key = lambda x: x [ 0 ] + x [ 1 ])

 
# Printout

print ( "The answer is" )

print ( Input )

Exit:

 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)]