Python program to sort a list of tuples by second Item

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