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