Python: elimine el diccionario de una lista de diccionarios si un valor particular no está presente

Dada una lista de diccionarios, elimine todos los diccionarios que no tengan K como valor.

Ejemplos:

Entrada : test_list = [{«Gfg»: 4, «es»: 8, «mejor»: 9}, {«Gfg»: 3, «es»: 7, «mejor»: 5}], K = 7 
Salida : [{‘Gfg’: 4, ‘is’: 8, ‘best’: 9}] 
Explicación : el diccionario resultante no contiene 7 como ningún elemento.

Entrada : test_list = [{«Gfg»: 4, «es»: 7, «mejor»: 9}, {«Gfg»: 3, «es»: 7, «mejor»: 5}], K = 7 
Salida : [] 
Explicación : Todos contienen 7 como elemento en la Lista. 
 

Método #1: Usar loop + valores()

Esta es una de las formas en que se puede realizar esta tarea. En esto, realizamos la tarea de iterar todos los diccionarios usando bucle y verificamos la presencia de valor usando valores().

Python3

# Python3 code to demonstrate working of 
# Remove dictionary if K value not present
# Using loop + values()
  
# initializing lists
test_list = [{"Gfg" : 4, "is" : 8, "best" : 9},
             {"Gfg" : 5, "is": 8, "best" : 1},
             {"Gfg" : 3, "is": 7, "best" : 6}, 
             {"Gfg" : 3, "is": 7, "best" : 5}]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing K 
K = 7
  
res = []
  
# using loop to check for K element 
for sub in test_list:
    if K not in list(sub.values()):
        res.append(sub)
  
# printing result 
print("Filtered dictionaries : " + str(res))

Producción:

La lista original: [{‘Gfg’: 4, ‘es’: 8, ‘mejor’: 9}, {‘Gfg’: 5, ‘es’: 8, ‘mejor’: 1}, {‘Gfg’: 3, ‘es’: 7, ‘mejor’: 6}, {‘Gfg’: 3, ‘es’: 7, ‘mejor’: 5}]
Diccionarios filtrados: [{‘Gfg’: 4, ‘es’: 8, ‘mejor’: 9}, {‘Gfg’: 5, ‘es’: 8, ‘mejor’: 1}]

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

Esta es otra forma más en la que se puede realizar esta tarea. En esto, extraemos todos los valores usando una sola línea usando comprensión de lista. Los valores se extraen usando valores().

Python3

# Python3 code to demonstrate working of 
# Remove dictionary if K value not present
# Using list comprehension
  
# initializing lists
test_list = [{"Gfg" : 4, "is" : 8, "best" : 9},
             {"Gfg" : 5, "is": 8, "best" : 1},
             {"Gfg" : 3, "is": 7, "best" : 6}, 
             {"Gfg" : 3, "is": 7, "best" : 5}]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing K 
K = 7
  
res = []
  
# using one-liner to extract dicts with NO K value
# using not in operator to check presence
res = [sub for sub in test_list if K not in list(sub.values())]
  
# printing result 
print("Filtered dictionaries : " + str(res))

Producción:

La lista original: [{‘Gfg’: 4, ‘es’: 8, ‘mejor’: 9}, {‘Gfg’: 5, ‘es’: 8, ‘mejor’: 1}, {‘Gfg’: 3, ‘es’: 7, ‘mejor’: 6}, {‘Gfg’: 3, ‘es’: 7, ‘mejor’: 5}]
Diccionarios filtrados: [{‘Gfg’: 4, ‘es’: 8, ‘mejor’: 9}, {‘Gfg’: 5, ‘es’: 8, ‘mejor’: 1}]

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 *