Dado el diccionario con listas de valores, extraiga todos aquellos elementos con valores que suman más de K.
Entrada : {“Gfg”: [6, 3, 4], “es”: [8, 10, 12], “Mejor”: [10, 16, 14], “para”: [7, 4, 3] , “geeks”: [1, 2, 3, 4]}, K = 10
Salida : {“Gfg”: [6, 3, 4], “is”: [8, 10, 12], “Best”: [10, 16, 14], «for»: [7, 4, 3], «geeks»: [1, 2, 3, 4]}
Explicación : todos los elementos son mayores que 10.Entrada : {“Gfg”: [6, 3, 4], “es”: [8, 10, 12], “Mejor”: [10, 16, 14], “para”: [7, 4, 3] , “geeks”: [1, 2, 3, 4]}, K = 50
Salida : {}
Explicación : ningún elemento es mayor que 50.
Método #1: Usando la comprensión del diccionario + sum()
Esta es una de las formas en que se puede resolver este problema. En este one-liner, iteramos a través de las claves y agregamos el elemento del diccionario solo si el total de su valor cruza K calculado usando sum().
Python3
# Python3 code to demonstrate working of # Extract Dictionary Items with Summation Greater than K # Using dictionary comprehension + sum() # initializing dictionary test_dict = {"Gfg" : [6, 3, 4], "is" : [8, 10, 12], "Best" : [10, 16, 14], "for" : [7, 4, 3], "geeks" : [1, 2, 3, 4]} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # initializing K K = 15 # summation using sum(), values extracted using items() res = {key: val for key, val in test_dict.items() if sum(val) > K} # printing result print("The computed dictionary : " + str(res))
The original dictionary is : {'Gfg': [6, 3, 4], 'is': [8, 10, 12], 'Best': [10, 16, 14], 'for': [7, 4, 3], 'geeks': [1, 2, 3, 4]} The computed dictionary : {'is': [8, 10, 12], 'Best': [10, 16, 14]}
Método #2: Usando filter() + lambda() + sum() + dict()
Esta es otra forma en la que se puede realizar esta tarea. En esto, la parte de cálculo se realiza usando filter() y lambda, la suma usando sum() y el resultado convertido a diccionario usando dict().
Python3
# Python3 code to demonstrate working of # Extract Dictionary Items with Summation Greater than K # Using filter() + lambda() + sum() + dict() # initializing dictionary test_dict = {"Gfg" : [6, 3, 4], "is" : [8, 10, 12], "Best" : [10, 16, 14], "for" : [7, 4, 3], "geeks" : [1, 2, 3, 4]} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # initializing K K = 15 # summation using sum(), values extracted using items() # filter() + lambda used for computation res = dict(filter(lambda ele: sum(ele[1]) > K, test_dict.items())) # printing result print("The computed dictionary : " + str(res))
The original dictionary is : {'Gfg': [6, 3, 4], 'is': [8, 10, 12], 'Best': [10, 16, 14], 'for': [7, 4, 3], 'geeks': [1, 2, 3, 4]} The computed dictionary : {'is': [8, 10, 12], 'Best': [10, 16, 14]}
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