Python | Eliminar dictados duplicados en la lista

La eliminación de duplicados es esencial en muchas aplicaciones. Las listas de diccionarios son bastante comunes y, a veces, necesitamos duplicar el duplicado. Vamos a discutir ciertas formas en que esto se puede lograr.

Método #1: método ingenuo
El método básico que viene a la mente al realizar esta operación es el método ingenuo de iterar la lista de diccionarios y eliminar manualmente el diccionario duplicado y agregarlo en una nueva lista.

# Python3 code to demonstrate 
# remove duplicate dictionary
# using naive method 
  
# initializing list
test_list = [{"Akash" : 1}, {"Kil" : 2}, {"Akshat" : 3}, {"Kil" : 2}, {"Akshat" : 3}]
  
# printing original list 
print ("Original list : " + str(test_list))
  
# using naive method to 
# remove duplicates 
res_list = []
for i in range(len(test_list)):
    if test_list[i] not in test_list[i + 1:]:
        res_list.append(test_list[i])
  
# printing resultant list
print ("Resultant list is : " + str(res_list))

Producción :

Original list : [{'Akash': 1}, {'Kil': 2}, {'Akshat': 3}, {'Kil': 2}, {'Akshat': 3}]
Resultant list is : [{'Akash': 1}, {'Kil': 2}, {'Akshat': 3}]

Método n.º 2: Uso de la comprensión de listas
El uso de la comprensión de listas y la enumeración pueden permitir realizar esta tarea en particular en una sola línea y, por lo tanto, es de gran utilidad.

# Python3 code to demonstrate 
# remove duplicate dictionary
# using list comprehension
  
# initializing list
test_list = [{"Akash" : 1}, {"Kil" : 2}, {"Akshat" : 3}, {"Kil" : 2}, {"Akshat" : 3}]
  
# printing original list 
print ("Original list : " + str(test_list))
  
# using list comprehension to 
# remove duplicates 
res_list = [i for n, i in enumerate(test_list) if i not in test_list[n + 1:]]
  
# printing resultant list
print ("Resultant list is : " + str(res_list))

Producción :

Original list : [{'Akash': 1}, {'Kil': 2}, {'Akshat': 3}, {'Kil': 2}, {'Akshat': 3}]
Resultant list is : [{'Akash': 1}, {'Kil': 2}, {'Akshat': 3}]

Método #3: Uso de frozenset
frozenset se usa para asignar un valor a la clave en el diccionario como un conjunto. Por lo tanto, las entradas repetidas del diccionario se ignoran y, por lo tanto, resuelven esta tarea en particular.

# Python3 code to demonstrate 
# remove duplicate dictionary
# using frozenset
  
# initializing list
test_list = [{"Akash" : 1}, {"Kil" : 2}, {"Akshat" : 3}, {"Kil" : 2}, {"Akshat" : 3}]
  
# printing original list 
print ("Original list : " + str(test_list))
  
# using frozenset to 
# remove duplicates 
res_list = {frozenset(item.items()) : item for item in test_list}.values()
  
# printing resultant list
print ("Resultant list is : " + str(res_list))

Producción :

Original list : [{'Akash': 1}, {'Kil': 2}, {'Akshat': 3}, {'Kil': 2}, {'Akshat': 3}]
Resultant list is : [{'Kil': 2}, {'Akshat': 3}, {'Akash': 1}]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 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 *