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