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