How to remove duplicate tuples from list of tuples in Python

Given a list of tuples, Write a Python program to remove all the duplicated tuples from the given list.

Examples:

Input : [(1, 2), (5, 7), (3, 6), (1, 2)]
Output : [(1, 2), (5, 7), (3, 6)]

Input : [('a', 'z'), ('a', 'x'), ('z', 'x'), ('a', 'x'), ('z', 'x')]
Output : [('a', 'z'), ('a', 'x'), ('z', 'x')]

Method #1 : List comprehension

This is a naive approach to use list comprehension. Here, we use two for loops and set data structure to cancel out all the duplicates.

 

# Python3 program to remove duplicate
# tuples from list of tuples

def removeDuplicates(lst):
	
	return [t for t in (set(tuple(i) for i in lst))]
		
# Driver code
lst = [(1, 2), (5, 7), (3, 6), (1, 2)]
print(removeDuplicates(lst))

Output:

[(1, 2), (5, 7), (3, 6)]

Method #2 : List comprehension (Efficient approach)

This method is efficient as compared to the above method, here we use a single for loop within list comprehension and then convert it to set to remove duplicates and then again convert it to list.

# Python3 program to remove duplicate
# tuples from list of tuples

def removeDuplicates(lst):
	
	return list(set([i for i in lst]))
		
# Driver code
lst = [(1, 2), (5, 7), (3, 6), (1, 2)]
print(removeDuplicates(lst))

Output:

[(1, 2), (5, 7), (3, 6)]

Method #3 : Python enumerate() method

# Python3 program to remove duplicate
# tuples from list of tuples

def removeDuplicates(lst):
	
	return [[a, b] for i, [a, b] in enumerate(lst)
	if not any(c == b for _, c in lst[:i])]
		
# Driver code
lst = [(1, 2), (5, 7), (3, 6), (1, 2)]
print(removeDuplicates(lst))

Output:

[[1, 2], [5, 7], [3, 6]]

 

Submit Your Programming Assignment Details