Dada una lista de diccionarios, extraiga todos los diccionarios cuya suma de claves exceda K.
Entrada : test_list = [{«Gfg»: 4, «es»: 8, «mejor»: 9}, {«Gfg»: 3, «es»: 7, «mejor»: 5}], K = 15
Salida : [{‘Gfg’: 4, ‘is’: 8, ‘best’: 9}]
Explicación : 4 + 9 + 8 = 21. Mayor que K, por lo tanto devuelto.Entrada : test_list = [{«Gfg»: 4, «es»: 8, «mejor»: 9}, {«Gfg»: 3, «es»: 7, «mejor»: 5}], K = 25
Salida : []
Explicación : No hay diccionario con suma > 25.
Método #1: Usar bucle
Esta es la forma bruta en la que se puede realizar esta tarea. En esto, iteramos para todos los diccionarios y extraemos la suma de cada uno de ellos, que excede K, los filtramos.
Python3
# Python3 code to demonstrate working of # Extract dictionaries with values sum greater than K # Using # 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 = 15 # using loop to extract all dictionaries res = [] for sub in test_list: sum = 0 for key in sub: sum += sub[key] if sum > K: res.append(sub) # printing result print("Dictionaries with summation greater than K : " + str(res))
The original 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}] Dictionaries with summation greater than K : [{'Gfg': 4, 'is': 8, 'best': 9}, {'Gfg': 3, 'is': 7, 'best': 6}]
Método n.° 2: usar la comprensión de listas + sum()
Esta es una forma lineal en la que se puede realizar esta tarea. En esto, realizamos la tarea de suma usando sum() y la comprensión de listas se puede usar para realizar la tarea de combinar toda la lógica en una sola línea.
Python3
# Python3 code to demonstrate working of # Extract dictionaries with values sum greater than K # Using list comprehension + sum() # 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 = 15 # using one-liner to extract all the dictionaries res = [sub for sub in test_list if sum(list(sub.values())) > K] # printing result print("Dictionaries with summation greater than K : " + str(res))
The original 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}] Dictionaries with summation greater than K : [{'Gfg': 4, 'is': 8, 'best': 9}, {'Gfg': 3, 'is': 7, 'best': 6}]
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