Skip to content
Related Articles

Related Articles

Python | Program to count duplicates in a list of tuples
  • Last Updated : 11 Dec, 2018

Given a list of tuples, write a Python program to check if an element of the list has duplicates. If duplicate exist, print the number of occurrence of each duplicate tuple, otherwise print “No Duplicates”.

Examples:

Input : [(‘a’, ‘e’), (‘b’, ‘x’), (‘b’, ‘x’), (‘a’, ‘e’), (‘b’, ‘x’)]
Output :
(‘a’, ‘e’) – 2
(‘b’, ‘x’) – 3

Input : [(0, 5), (6, 9), (0, 8)]
Output : No Duplicates

Let’s see the various ways we can count duplicates in a list of tuples.



Approach #1 : Naive Approach

This approach uses two loops to traverse the list elements and check if the first element and second element of each element matches any other tuple.




# Python3 code to convert tuple 
# into string
def count(listOfTuple):
      
    flag = False
  
    # To append Duplicate elements in list
    coll_list = []  
    coll_cnt = 0
    for t in listOfTuple:
          
        # To check if Duplicate exist
        if t in coll_list:  
            flag = True
            continue
          
        else:
            coll_cnt = 0
            for b in listOfTuple:
                if b[0] == t[0] and b[1] == t[1]:
                    coll_cnt = coll_cnt + 1
              
            # To print count if Duplicate of element exist
            if(coll_cnt > 1): 
                print(t, "-", coll_cnt)
            coll_list.append(t)
                       
    if flag == False:
        print("No Duplicates")
  
# Driver code
print("Test Case 1:")
listOfTuple = [('a', 'e'), ('b', 'x'), ('b', 'x'), 
               ('a', 'e'), ('b', 'x')] 
  
count(listOfTuple)
  
print("Test Case 2:")
listOfTuple = [(0, 5), (6, 9), (0, 8)]
count(listOfTuple)


Output:

Test Case 1:
('a', 'e') - 2
('b', 'x') - 3

Test Case 2:
No Duplicates

Time complexity – O(n)2

 
Approach #2 : Using Counter

Counter is a container included in the collections module. It is an unordered collection where elements and their respective count are stored as dictionary.




# Python3 code to convert tuple 
# into string
import collections
  
def count(listOfTuple):
      
    flag = False
    val = collections.Counter(listOfTuple)
    uniqueList = list(set(listOfTuple))
      
    for i in uniqueList:
        if val[i]>= 2:
            flag = True
            print(i, "-", val[i])
              
    if flag == False:
        print("Duplicate doesn't exist")
  
# Driver code
listOfTuple = [('a', 'e'), ('b', 'x'), ('b', 'x'), 
               ('a', 'e'), ('b', 'x')] 
count(listOfTuple)


Output:

('b', 'x') - 3
('a', 'e') - 2

Time complexity – O(n)
 
Approach #3 : Using another dict

You can make a dictionary, say count_map, and store the count of each tuple as the value.




# Python3 code to convert tuple 
# into string
def count(listOfTuple):
      
    count_map = {}
    for i in listOfTuple:
        count_map[i] = count_map.get(i, 0) +1
    print(count_map)
  
# Driver code
print("Test Case 1:")
listOfTuple = [('a', 'e'), ('b', 'x'), ('b', 'x'), 
               ('a', 'e'), ('b', 'x')] 
  
count(listOfTuple)


Output:

Test Case 1:
{('a', 'e'): 2, ('b', 'x'): 3}

Time complexity – O(n)

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.

My Personal Notes arrow_drop_up
Recommended Articles
Page :