# Python | sort list of tuple based on sum

• Last Updated : 11 May, 2020

Given, a list of tuple, the task is to sort the list of tuples based on the sum of elements in the tuple.

Examples:

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course

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).`

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

[(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.

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

[(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.

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