Python: elimine diccionarios con valores coincidentes con la tecla K

Dadas dos listas de diccionarios, elimine todos los diccionarios que tengan un valor similar de la tecla K de otra lista de diccionarios.

Entrada : test_list = [{‘Gfg’: 3, “es”: 3, “mejor”: 9}, 
{‘Gfg’: 8, “es”: 4, “mejor”: 2}, 
{‘Gfg’: 9, “es”: 2, “mejor”: 4}, 
{‘Gfg’: 8, “es”: 10, “mejor”: 3}, 
{‘Gfg’: 7, “es”: 1, “mejor ” : 7}], check_list = [{‘Gfg’ : 8, “Best” : 1}, {“Best” : 2, “Gfg” : 7}], K = “Gfg” 
Salida : [{‘Gfg’ : 3, ‘is’: 3, ‘best’: 9}, {‘Gfg’: 9, ‘is’: 10, ‘best’: 3}] 
Explicación : todos los diccionarios con el valor de «Gfg» como 8 o 7 se elimina.
 

Entrada : test_list = [{‘Gfg’: 3, “es”: 3, “mejor”: 9}, 
{‘Gfg’: 8, “es”: 4, “mejor”: 2}], check_list = [{ ‘Gfg’: 8, “Mejor”: 1}, {“Mejor”: 2, “Gfg”: 7}], K = “Gfg” 
Salida : [{‘Gfg’: 3, ‘es’: 3, ‘ best’: 9}] 
Explicación : se eliminan todos los diccionarios con el valor de «Gfg» como 8 o 7. 

Enfoque: Uso de comprensión de lista + comprensión de diccionario

En esto, realizamos tareas para obtener un conjunto de elementos usando la comprensión del diccionario, y luego se construye una nueva lista usando la comprensión de la lista probando la ausencia de valores de la clave K en el conjunto de valores construido.

Toda la tarea se lleva a cabo en dos pasos, 

  • Todos los valores únicos se extraen de check_list correspondiente a la clave K usando set() .
  • Cada diccionario en la lista de prueba se verifica para el valor de la clave K , si está presente en el conjunto creado en el primer paso, entonces ese diccionario se omite en el resultado, de lo contrario, el diccionario se agrega como resultado.

Python3

# Python3 code to demonstrate working of
# Remove Dictionaries with Matching Values with K Key
# Using dictionary comprehension + list comprehension
  
# initializing list
test_list = [{'Gfg': 3, "is": 3, "best": 9},
             {'Gfg': 8, "is": 4, "best": 2},
             {'Gfg': 1, "is": 2, "best": 4},
             {'Gfg': 9, "is": 10, "best": 3},
             {'Gfg': 7, "is": 1, "best": 7}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing check dictionary list
check_list = [{'Gfg': 8, "Best": 1}, {"Best": 2, "Gfg": 7}]
  
# initializing Key
K = "Gfg"
  
# getting set of values
temp = {sub[K] for sub in check_list}
  
# checking for value occurrence in test dictionary using in
# filtering only with no matching values
res = [sub for sub in test_list if sub[K] not in temp]
  
# printing result
print("Dictionary list after removal : " + str(res))

Producción:

La lista original es: [{‘Gfg’: 3, ‘is’: 3, ‘best’: 9}, {‘Gfg’: 8, ‘is’: 4, ‘best’: 2}, {‘Gfg’ : 1, ‘es’: 2, ‘mejor’: 4}, {‘Gfg’: 9, ‘es’: 10, ‘mejor’: 3}, {‘Gfg’: 7, ‘es’: 1, ‘ best’: 7}]
Lista de diccionarios después de la eliminación: [{‘Gfg’: 3, ‘is’: 3, ‘best’: 9}, {‘Gfg’: 1, ‘is’: 2, ‘best’: 4 }, {‘Gfg’: 9, ‘es’: 10, ‘mejor’: 3}]

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 *