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)
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)
('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)
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