Python: eliminar registros si la clave no está presente

A veces, mientras trabajamos con diccionarios de Python, podemos tener un problema en el que necesitamos eliminar todos los diccionarios en los que no está presente una clave en particular. Este tipo de problema puede tener aplicaciones en muchos dominios, como la programación día a día y el dominio de datos. Analicemos ciertas formas en que se puede realizar esta tarea.
 

Entrada : lista_prueba = [{‘Gfg’: 1, ‘Mejor’: 3}, {‘Gfg’: 3, ‘Mejor’: 5}, {‘Mejor’: 3}], K = ‘Mejor’ 
Salida : [ {‘Gfg’: 1, ‘Mejor’: 3}, {‘Gfg’: 3, ‘Mejor’: 5}, {‘Mejor’: 3}]
Entrada : test_list = [{‘Gfg’: 1, ‘Mejor ‘ : 3}, {‘Gfg’ : 3, ‘Best’ : 5}, {‘Best’ : 3}], K = ‘good’ 
Output : [] 
 

Método #1: Uso de la comprensión de listas 
Esta es una de las formas en que se puede realizar esta tarea. En esto, iteramos y probamos la presencia clave usando comprensión de lista y declaraciones condicionales.
 

Python3

# Python3 code to demonstrate working of
# Remove records if Key not present
# Using list comprehension
 
# initializing list
test_list = [{'Gfg' : 1, 'Best' : 3},
             {'Gfg' : 3, 'Best' : 5},
             {'Best' : 3}]
 
# printing original list
print("The original list : " + str(test_list))
 
# initializing K Key
K = 'Gfg'
 
# Remove records if Key not present
# Using list comprehension
res = [ele for ele in test_list if K in ele]
         
# printing result
print("List after filtration : " + str(res))
Producción : 

The original list : [{'Gfg': 1, 'Best': 3}, {'Gfg': 3, 'Best': 5}, {'Best': 3}]
List after filtration : [{'Gfg': 1, 'Best': 3}, {'Gfg': 3, 'Best': 5}]

 

 
Método n.º 2: Usar comprensión de lista + teclas() 
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de extracción de todas las claves usando keys(), lo que reduce la sobrecarga de registrar elementos.
 

Python3

# Python3 code to demonstrate working of
# Remove records if Key not present
# Using list comprehension + keys()
 
# initializing list
test_list = [{'Gfg' : 1, 'Best' : 3},
             {'Gfg' : 3, 'Best' : 5},
             {'Best' : 3}]
 
# printing original list
print("The original list : " + str(test_list))
 
# initializing K Key
K = 'Gfg'
 
# Remove records if Key not present
# Using list comprehension + keys()
res = [ele for ele in test_list if K in ele.keys()]
         
# printing result
print("List after filtration : " + str(res))
Producción : 

The original list : [{'Gfg': 1, 'Best': 3}, {'Gfg': 3, 'Best': 5}, {'Best': 3}]
List after filtration : [{'Gfg': 1, 'Best': 3}, {'Gfg': 3, 'Best': 5}]

 

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 *