# Python program to Sort a List of Tuples in Increasing Order by the Last Element in Each Tuple

• Difficulty Level : Medium
• Last Updated : 19 May, 2022

The task is to write a Python Program to sort a list of tuples in increasing order by the last element in each tuple.

```Input: [(1, 3), (3, 2), (2, 1)]
Output: [(2, 1), (3, 2), (1, 3)]
Explanation: sort tuple based on the last digit of each tuple.```

Methods #1: Using sorted().

Sorted() method sorts a list and always returns a list with the elements in a sorted manner, without modifying the original sequence.

Approach:

• Take a list of tuples from the user.
• Define a function that returns the last element of each tuple in the list of tuples.
• Define another function with the previous function as the key and sort the list.
• Print the sorted list.

## Python3

 `def` `last(n):``    ``return` `n[``-``1``] `` ` `def` `sort(tuples):``    ``return` `sorted``(tuples, key``=``last)`` ` `a``=``[(``1``, ``3``), (``3``, ``2``), (``2``, ``1``)]``print``(``"Sorted:"``)``print``(sort(a))`

Output:

```Sorted:
[(2, 1), (3, 2), (1, 3)]```

Methods #2: Using Bubble Sort.

Access the last element 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 program to sort``# a list of tuples by the second Item``  ` `# Function to sort the list``# of tuples by its second item``def` `Sort_Tuple(tup): ``      ` `    ``# getting length of list of tuples``    ``lst ``=` `len``(tup) ``    ``for` `i ``in` `range``(``0``, lst): ``          ` `        ``for` `j ``in` `range``(``0``, lst``-``i``-``1``): ``            ``if` `(tup[j][``-``1``] > tup[j ``+` `1``][``-``1``]): ``                ``temp ``=` `tup[j] ``                ``tup[j]``=` `tup[j ``+` `1``] ``                ``tup[j ``+` `1``]``=` `temp ``    ``return` `tup ``  ` `# Driver Code ``tup ``=``[(``1``, ``3``), (``3``, ``2``), (``2``, ``1``)]``        ` `print``(Sort_Tuple(tup))`

Output:

`[(2, 1), (3, 2), (1, 3)]`

Methods #3: Using sort().

The sort() method sorts the elements of a given list in a specific ascending or descending order.

## Python3

 `# Python program to sort a list of``# tuples by the second Item using sort() ``  ` `# Function to sort the list by second item of tuple``def` `Sort_Tuple(tup): ``  ` `    ``# reverse = None (Sorts in Ascending order) ``    ``# key is set to sort using second element of ``    ``# sublist lambda has been used ``    ``tup.sort(key ``=` `lambda` `x: x[``-``1``]) ``    ``return` `tup ``  ` `# Driver Code ``tup ``=` `[(``1``, ``3``), (``3``, ``2``), (``2``, ``1``)]``  ` `# printing the sorted list of tuples``print``(Sort_Tuple(tup)) `

Output:

`[(2, 1), (3, 2), (1, 3)]`

My Personal Notes arrow_drop_up