Dado un diccionario con claves como diccionarios anidados, encuentre la suma de los valores de ciertas claves personalizadas dentro del diccionario anidado.
Entrada : test_dict = {‘Gfg’: {1: 6, 5: 9, 9: 12}, ‘es’: {1: 9, 5: 7, 9: 2}, ‘mejor’: {1: 3, 5: 4, 9: 14}}, sum_key = [1]
Salida : 18
Explicación : 6 + 9 + 3 = 18, solo se suman los valores con la clave 1.Entrada : test_dict = {‘Gfg’: {1: 6, 5: 9, 9: 12}, ‘es’: {1: 9, 5: 7, 9: 2}, ‘mejor’: {1: 3, 5: 4, 9: 14}}, sum_key = [5, 9]
Salida : 48
Explicación : las teclas 5, 9 se suman.
Método #1: bucle
Esta es la forma bruta en la que se puede resolver este problema. En esto, empleamos un bucle para todos los elementos de la lista y seguimos actualizando el valor de la suma de todos los diccionarios anidados.
Python3
# Python3 code to demonstrate working of # Summation of Custom nested keys in Dictionary # Using loop # initializing dictionary test_dict = {'Gfg' : {1 : 6, 5: 9, 9: 12}, 'is' : {1 : 9, 5: 7, 9: 2}, 'best' : {1 : 3, 5: 4, 9: 14}} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # initializing sum keys sum_key = [1, 9] sum = 0 for ele in sum_key: for key, val in test_dict.items(): # extracting summation of required values sum = sum + val[ele] # printing result print("The required summation : " + str(sum))
El diccionario original es: {‘Gfg’: {1: 6, 5: 9, 9: 12}, ‘is’: {1: 9, 5: 7, 9: 2}, ‘best’: {1: 3 , 5: 4, 9: 14}}
La suma requerida: 46
Método n.° 2: usar la comprensión de listas + sum()
La combinación de las funciones anteriores también se puede emplear para resolver este problema. En esto, realizamos la tarea de suma usando sum() y la lógica de descanso también se encapsula como una sola línea usando comprensión de lista.
Python3
# Python3 code to demonstrate working of # Summation of Custom nested keys in Dictionary # Using list comprehension + sum() # initializing dictionary test_dict = {'Gfg' : {1 : 6, 5: 9, 9: 12}, 'is' : {1 : 9, 5: 7, 9: 2}, 'best' : {1 : 3, 5: 4, 9: 14}} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # initializing sum keys sum_key = [1, 9] # sum() used to get cumulative summation res = sum([val[ele] for ele in sum_key for key, val in test_dict.items()]) # printing result print("The required summation : " + str(res))
El diccionario original es: {‘Gfg’: {1: 6, 5: 9, 9: 12}, ‘is’: {1: 9, 5: 7, 9: 2}, ‘best’: {1: 3 , 5: 4, 9: 14}}
La suma requerida: 46
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