**Given a list of tuples**, write a Python program to sort the tuples by the second item of each tuple.

**Examples:**

```
Input : [('for', 24), ('Geeks', 8), ('Geeks', 30)]
Output : [('Geeks', 8), ('for', 24), ('Geeks', 30)]
Input : [('452', 10), ('256', 5), ('100', 20), ('135', 15)]
Output : [('256', 5), ('452', 10), ('135', 15), ('100', 20)]
```

**Method #1:** Using the Bubble Sort

Using the technique of Bubble Sort to we can perform the sorting. N Access the second element of each tuple using the nested loops. This performs the in-place method of sorting. O(n^2).

```
# 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 =[('for', 24), ('is', 10), ('Geeks', 28),
('Geeksforgeeks', 5), ('portal', 20), ('a', 15)]
print(Sort_Tuple(tup))
```

**Output:**

`[('Geeksforgeeks', 5), ('is', 10), ('a', 15), ('portal', 20), ('for', 24), ('Geeks', 28)]`

**Method #2:** Using sort() method

```
# Python program to sort a list of
# tuples by the second Item using sort()
# Function to sort hte 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 = [('rishav', 10), ('akash', 5), ('ram', 20), ('gaurav', 15)]
# printing the sorted list of tuples
print(Sort_Tuple(tup))
```

**Output:**

[('akash', 5), ('rishav', 10), ('gaurav', 15), ('ram', 20)]

**Method #3:** Using sorted() method

Sorted() method sorts a list and always returns a list with the elements in a sorted manner, without modifying the original sequence. It takes three parameters from which two are optional, here we tried to use all of the three:

**Iterable :** sequence (list, tuple, string) or collection (dictionary, set, frozenset) or any other iterator that needs to be sorted.**Key(optional) :** A function that would serve as a key or a basis of sort comparison.**Reverse(optional) :** To sort this in ascending order we could have just ignored the third parameter, which we did in this program.

```
# Python program to sort a list of
# tuples by the second Item using sorted()
# 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
return(sorted(tup, key = lambda x: x[1]))
# Driver Code
tup = [('rishav', 10), ('akash', 5), ('ram', 20), ('gaurav', 15)]
# printing the sorted list of tuples
print(Sort_Tuple(tup))
```

**Output:**

[('akash', 5), ('rishav', 10), ('gaurav', 15), ('ram', 20)]