Python: elimina el diccionario si el valor de la clave dada es N

Dada la lista de diccionarios, elimine el diccionario cuya Clave K es N.

Entrada : test_list = [{“Gfg”: 3, “is”: 7, “Best”: 8}, {“Gfg”: 9, “is”: 2, “Best”: 9}, {“Gfg”: 5, “es”: 4, “Mejor”: 10}, {“Gfg”: 3, “es”: 6, “Mejor”: 15}], K = “Gfg”, N = 9 Salida: [
{ “ Gfg”: 3, “es”: 7, “Mejor”: 8}, {“Gfg”: 5, “es”: 4, “Mejor”: 10}, {“Gfg”: 3, “es”: 6 , “Best”: 15}]
Explicación : se extraen todos los elementos que tienen “Gfg” que no sea 9.

Entrada : test_list = [{“Gfg”: 3, “is”: 7, “Best”: 8}, {“Gfg”: 9, “is”: 2, “Best”: 9}, {“Gfg”: 5, “es”: 4, “Mejor”: 10}, {“Gfg”: 3, “es”: 6, “Mejor”: 15}], K = “Mejor”, N = 10 Salida: [
{ “ Gfg”: 3, “es”: 7, “Mejor”: 8}, {“Gfg”: 9, “es”: 2, “Mejor”: 9}, {“Gfg”: 3, “es”: 6 , “Mejor”: 15}]
Explicación : Se extraen todos los elementos que tienen “Mejor” que no sea 10.

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

Esta es una de las formas en que se puede realizar esta tarea. En esto, extraemos e iteramos usando verificaciones condicionales usando la comprensión de listas en una sola línea.

Python3

# Python3 code to demonstrate working of 
# Remove Dictionaries whose Key(K) is N
# Using list comprehension
  
# initializing list
test_list = [{"Gfg" : 3, "is" : 7, "Best" : 8}, 
             {"Gfg" : 9, "is" : 2, "Best" : 9}, 
             {"Gfg" : 5, "is" : 4, "Best" : 10},
             {"Gfg" : 3, "is" : 6, "Best" : 8}]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing K 
K = "Gfg"
  
# initializing N 
N = 5
  
# returning only dictionaries with "Gfg" key not 5 
res = [sub for sub in test_list if sub[K] != N]
  
# printing result 
print("The extracted dictionaries : " + str(res))
Producción

The original list : [{'Gfg': 3, 'is': 7, 'Best': 8}, {'Gfg': 9, 'is': 2, 'Best': 9}, {'Gfg': 5, 'is': 4, 'Best': 10}, {'Gfg': 3, 'is': 6, 'Best': 8}]
The extracted dictionaries : [{'Gfg': 3, 'is': 7, 'Best': 8}, {'Gfg': 9, 'is': 2, 'Best': 9}, {'Gfg': 3, 'is': 6, 'Best': 8}]

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

 Esta es otra forma más en la que se puede realizar esta tarea. En esto, usamos condicionales usando filter() y la función lambda es para verificar el valor de N.

Python3

# Python3 code to demonstrate working of 
# Remove Dictionaries whose Key(K) is N
# Using filter() + lambda
  
# initializing list
test_list = [{"Gfg" : 3, "is" : 7, "Best" : 8}, 
             {"Gfg" : 9, "is" : 2, "Best" : 9}, 
             {"Gfg" : 5, "is" : 4, "Best" : 10},
             {"Gfg" : 3, "is" : 6, "Best" : 8}]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing K 
K = "Gfg"
  
# initializing N 
N = 5
  
# Using filter() to check for N value
res = list(filter(lambda x: x[K] != N, test_list))
  
# printing result 
print("The extracted dictionaries : " + str(res))
Producción

The original list : [{'Gfg': 3, 'is': 7, 'Best': 8}, {'Gfg': 9, 'is': 2, 'Best': 9}, {'Gfg': 5, 'is': 4, 'Best': 10}, {'Gfg': 3, 'is': 6, 'Best': 8}]
The extracted dictionaries : [{'Gfg': 3, 'is': 7, 'Best': 8}, {'Gfg': 9, 'is': 2, 'Best': 9}, {'Gfg': 3, 'is': 6, '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 *