Programa Python para extraer diccionarios con clave dada de una lista de diccionarios

Dada una lista de diccionarios, la tarea es escribir un programa en python que extraiga solo aquellos diccionarios que contengan un valor clave dado específico.

Entrada : test_list = [{‘gfg’: 2, ‘is’: 8, ‘good’: 3}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’: 3}], clave = «gfg»
Salida : [{‘gfg’: 2, ‘is’: 8, ‘good’: 3}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9 }] 
Explicación : gfg está presente en los primeros dos diccionarios, por lo tanto, se extrae.
 

Entrada : test_list = [{‘gfg’: 2, ‘is’: 8, ‘good’: 3}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’: 3, ‘gfgs’: 4}], clave = «bueno»
Salida : [{‘gfg’: 2, ‘es’: 8, ‘bueno’: 3}] 
Explicación : bueno está presente en el primer diccionario, por lo tanto, se extrae. 
 

Método 1: usar la comprensión de listas y las claves()

En esto, probamos la presencia de la clave usando el operador in , las claves se extraen usando key(). La comprensión de listas se utiliza para iterar sobre diferentes diccionarios.

Ejemplo:

Python3

# Python3 code to demonstrate working of
# Extract Dictionaries with given Key
# Using list comprehension + keys()
 
# initializing list
test_list = [{'gfg': 2, 'is': 8, 'good': 3},
             {'gfg': 1, 'for': 10, 'geeks': 9},
             {'love': 3}]
 
# printing original list
print("The original list is : " + str(test_list))
 
# initializing key
key = 'gfg'
 
# checking for key using in operator
# keys() used to get keys
res = [sub for sub in test_list if key in list(sub.keys())]
 
# printing result
print("The filtered Dictionaries : " + str(res))

Producción:

La lista original es: [{‘gfg’: 2, ‘is’: 8, ‘good’: 3}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’ : 3}]

Los diccionarios filtrados: [{‘gfg’: 2, ‘is’: 8, ‘good’: 3}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}]

Método 2: Usar filter() y lambda

En esto, realizamos la tarea de filtrar usando filter() y la función lambda se usa para inyectar lógica en la filtración. El operador in se utiliza para comprobar la presencia de una clave específica.

Ejemplo:

Python3

# Python3 code to demonstrate working of
# Extract Dictionaries with given Key
# Using filter() + lambda
 
# initializing list
test_list = [{'gfg': 2, 'is': 8, 'good': 3},
             {'gfg': 1, 'for': 10, 'geeks': 9},
             {'love': 3, 'gfg': 4}]
 
# printing original list
print("The original list is : " + str(test_list))
 
# initializing key
key = 'good'
 
# checking for key using in operator
# keys() used to get keys
# filter() + lambda used to perform filteration
res = list(filter(lambda sub: key in list(sub.keys()), test_list))
 
# printing result
print("The filtered Dictionaries : " + str(res))

Producción:

La lista original es: [{‘gfg’: 2, ‘is’: 8, ‘good’: 3}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’ : 3, ‘gfg’: 4}]

Los diccionarios filtrados: [{‘gfg’: 2, ‘is’: 8, ‘good’: 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 *