Python | Programa para contar duplicados en una lista de tuplas

Dada una lista de tuplas, escriba un programa en Python para verificar si un elemento de la lista tiene duplicados. Si existen duplicados, imprima el número de ocurrencias de cada tupla duplicada; de lo contrario, imprima «Sin duplicados».

Ejemplos:

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

Veamos las diversas formas en que podemos contar duplicados en una lista de tuplas. 

Enfoque n.º 1: enfoque ingenuo Este enfoque utiliza dos bucles para recorrer la lista de elementos y verificar si el primer elemento y el segundo elemento de cada elemento coinciden con cualquier otra tupla. 

Python3

# 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 & gt
               1):
                print(t, & quot
                      - ", coll_cnt)
            coll_list.append(t)
 
    if flag == False:
        print(& quot
               No Duplicates & quot
               )
 
 
# Driver code
print(& quot
       Test Case 1: & quot
       )
listOfTuple = [('a', 'e'), ('b', 'x'), ('b', 'x'),
               ('a', 'e'), ('b', 'x')]
 
count(listOfTuple)
 
print(& quot
       Test Case 2: & quot
       )
listOfTuple = [(0, 5), (6, 9), (0, 8)]
count(listOfTuple)
Producción:

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

Test Case 2:
No Duplicates

Complejidad del tiempo – O(n) 2   

Enfoque #2: Uso de Counter Counter es un contenedor incluido en el módulo de colecciones. Es una colección desordenada donde los elementos y su respectiva cuenta se almacenan como diccionario. 

Python3

# 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] & gt
        = 2:
            flag = True
            print(i, & quot
                  - ", val[i])
 
    if flag == False:
        print(& quot
               Duplicate doesn't exist & quot
               )
 
 
# Driver code
listOfTuple = [('a', 'e'), ('b', 'x'), ('b', 'x'),
               ('a', 'e'), ('b', 'x')]
count(listOfTuple)
Producción:

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

Complejidad del tiempo – O(n)   

Enfoque n.º 3: usar otro dictado Puede crear un diccionario, digamos count_map, y almacenar el recuento de cada tupla como valor. 

Python3

# 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( & quot
      Test Case 1: & quot
      )
listOfTuple = [('a', 'e'), ('b', 'x'), ('b', 'x'),
               ('a', 'e'), ('b', 'x')]
 
count(listOfTuple)
Producción:

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

Complejidad del tiempo – O(n)

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *