Python: extrae elementos del diccionario con una suma mayor que K

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)) 
Producción

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)) 
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *