Python: elimine los diccionarios duplicados caracterizados por clave

Dada una lista de diccionarios, elimine todos los diccionarios que estén duplicados con respecto a la tecla K.

Entrada : test_list = [{“Gfg”: 6, “es”: 9, “mejor”: 10}, {“Gfg”: 8, “es”: 11, “mejor”: 10}, {“Gfg”: 2, «es»: 16, «mejor»: 10}], K = «mejor»
Salida : [{«Gfg»: 6, «es»: 9, «mejor»: 10}]
Explicación : todas las teclas tienen 10 valor, solo se retiene el primer registro.

Entrada : test_list = [{“Gfg”: 6, “es”: 9, “mejor”: 10}, {“Gfg”: 8, “es”: 11, “mejor”: 12}, {“Gfg”: 2, “es”: 16, “mejor”: 15}], K = “mejor”
Salida : [{“Gfg”: 6, “es”: 9, “mejor”: 10}, {“Gfg”: 8 , «es»: 11, «mejor»: 12}, {«Gfg»: 2, «es»: 16, «mejor»: 15}]
Explicación : todos los valores de «mejor» son únicos, por lo tanto, no se eliminan los diccionarios .

Método: Usar bucle 

Esta es la forma bruta en la que se puede realizar esta tarea. En esto, iteramos para cada diccionario y memorizamos la clave, si ocurre el mismo valor de clave similar, entonces ese diccionario se evita en la lista resultante de diccionarios.

Python3

# Python3 code to demonstrate working of 
# Remove Duplicate Dictionaries characterized by Key
# Using loop
  
# initializing lists
test_list = [{"Gfg" : 6, "is" : 9, "best" : 10}, 
             {"Gfg" : 8, "is" : 11, "best" : 19},
             {"Gfg" : 2, "is" : 16, "best" : 10},
             {"Gfg" : 12, "is" : 1, "best" : 8},
             {"Gfg" : 22, "is" : 6, "best" : 8}]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing Key 
K = "best"
  
memo = set()
res = []
for sub in test_list:
      
    # testing for already present value
    if sub[K] not in memo:
        res.append(sub)
          
        # adding in memo if new value
        memo.add(sub[K])
      
# printing result 
print("The filtered list : " + str(res))
Producción

La lista original: [{‘Gfg’: 6, ‘is’: 9, ‘best’: 10}, {‘Gfg’: 8, ‘is’: 11, ‘best’: 19}, {‘Gfg’: 2, ‘es’: 16, ‘mejor’: 10}, {‘Gfg’: 12, ‘es’: 1, ‘mejor’: 8}, {‘Gfg’: 22, ‘es’: 6, ‘mejor ‘: 8}]
La lista filtrada: [{‘Gfg’: 6, ‘is’: 9, ‘best’: 10}, {‘Gfg’: 8, ‘is’: 11, ‘best’: 19}, {‘Gfg’: 12, ‘es’: 1, ‘mejor’: 8}]

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 *