Python: extrae diccionarios con valor de string vacía en la tecla K

Dada la Lista de diccionarios, extraiga todos los diccionarios que tienen strings vacías como valores de clave particular.

Entrada : test_list = [{«Gfg»: «4», «es»: «bueno», «mejor»: «1»}, {«Gfg»: «9», «es»: «CS», «mejor ” : “10”}], K = “Gfg” Salida : [] Explicación : ninguna tecla “Gfg” está vacía. Entrada : test_list = [{«Gfg»: «», «es»: «bueno», «mejor»: «1»}, {«Gfg»: «9», «es»: «CS», «mejor» : “10”}], K = “Gfg” Salida : [{“Gfg” : “”, “is” : “good”, “best” : “1”}] Explicación : Diccionario con “Gfg” vacío extraído.

Método #1: Usar la comprensión de listas

Esta es una de las formas en que se puede realizar esta tarea. En esto, ejecutamos un bucle a través de todos los diccionarios y verificamos el valor de string vacía de la clave. Todo esto compilado en comprensión de lista en lugar de bucle.

Python3

# Python3 code to demonstrate working of
# Extract dictionaries with Empty String value in K key
# Using list comprehension
 
# initializing lists
test_list = [{"Gfg" : "4", "is" : "good", "best" : "1"},
             {"Gfg" : "", "is" : "better", "best" : "8"},
             {"Gfg" : "9", "is" : "CS", "best" : "10"}]
 
# printing original list
print("The original list : " + str(test_list))
 
# initializing K key
K = "Gfg"
 
# using list comprehension to fetch empty string key's dictionaries
res = [sub for sub in test_list if sub[K] == '']
     
# printing result
print("The extracted dictionaries : " + str(res))
Producción

The original list : [{'Gfg': '4', 'is': 'good', 'best': '1'}, {'Gfg': '', 'is': 'better', 'best': '8'}, {'Gfg': '9', 'is': 'CS', 'best': '10'}]
The extracted dictionaries : [{'Gfg': '', 'is': 'better', 'best': '8'}]

Método #2: Usar filter() + lambda

Esta es otra forma más en la que se puede realizar esta tarea. En esto, extraemos todos los diccionarios de claves de valores vacíos usando filter() y funcionalidad e iteración por lambda.

Python3

# Python3 code to demonstrate working of
# Extract dictionaries with Empty String value in K key
# Using filter() + lambda
 
# initializing lists
test_list = [{"Gfg" : "4", "is" : "good", "best" : "1"},
             {"Gfg" : "", "is" : "better", "best" : "8"},
             {"Gfg" : "9", "is" : "CS", "best" : "10"}]
 
# printing original list
print("The original list : " + str(test_list))
 
# initializing K key
K = "Gfg"
 
# filter() used to iteration
# lambda for functionality
res = list(filter(lambda sub: sub[K] == '', test_list))
     
# printing result
print("The extracted dictionaries : " + str(res))
Producción

The original list : [{'Gfg': '4', 'is': 'good', 'best': '1'}, {'Gfg': '', 'is': 'better', 'best': '8'}, {'Gfg': '9', 'is': 'CS', 'best': '10'}]
The extracted dictionaries : [{'Gfg': '', 'is': 'better', 'best': '8'}]

Método #3: Usar los métodos len() y keys()

Python3

# Python3 code to demonstrate working of
# Extract dictionaries with Empty String value in K key
# Using filter() + lambda
 
# initializing lists
test_list = [{"Gfg" : "4", "is" : "good", "best" : "1"},
            {"Gfg" : "", "is" : "better", "best" : "8"},
            {"Gfg" : "9", "is" : "CS", "best" : "10"}]
 
# printing original list
print("The original list : " + str(test_list))
 
# initializing K key
K = "Gfg"
res = []
for i in test_list:
    if K in i.keys() and len(i[K])==0 :
        res.append(i)
# printing result
print("The extracted dictionaries : " + str(res))
Producción

The original list : [{'Gfg': '4', 'is': 'good', 'best': '1'}, {'Gfg': '', 'is': 'better', 'best': '8'}, {'Gfg': '9', 'is': 'CS', 'best': '10'}]
The extracted dictionaries : [{'Gfg': '', 'is': 'better', 'best': '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 *