Python | Filtro de diccionario único en la lista

Mientras trabajamos con los diccionarios de Python, siempre podemos encontrarnos con un problema en el que tenemos una lista de diccionarios con posibles repeticiones y deseamos eliminar los duplicados. Este es un problema común que uno puede enfrentar en el dominio de aprendizaje automático. Vamos a discutir cierta forma en que este problema puede ser resuelto.

Método : Usandomap() + set() + items() + sorted() + tuple()

En este método, solo tenemos una combinación de funciones para realizar esta tarea. La mapfunción realiza la tarea de extender la lógica a todos los elementos. La setfunción realiza el filtrado real de los pares a los que accede items(). El sortedconjunto requiere la función para eliminar duplicados.

# Python3 code to demonstrate working of
# Unique dictionary filter in list
# Using map() + set() + items() + sorted() + tuple()
  
# Initialize list
test_list = [{'gfg' : 1, 'is' : 2, 'best' : 3},
             {'gfg' : 1, 'is' : 2, 'best' : 3},
             {'gfg' : 9, 'is' : 8, 'best' : 6}] 
  
# printing original list
print("The original list is : " + str(test_list))
  
# Unique dictionary filter in list
# Using map() + set() + items() + sorted() + tuple()
res = list(map(dict, set(tuple(sorted(sub.items())) for sub in test_list)))
  
# printing result
print("The list after removing duplicates : " + str(res))
Producción :

La lista original es: [{‘gfg’: 1, ‘is’: 2, ‘best’: 3}, {‘gfg’: 1, ‘is’: 2, ‘best’: 3}, {‘gfg’ : 9, ‘is’: 8, ‘best’: 6}]
La lista después de eliminar los duplicados: [{‘gfg’: 1, ‘is’: 2, ‘best’: 3}, {‘gfg’: 9, ‘es’: 8, ‘mejor’: 6}]

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 *