Python: suma de valores de registros anidados

A veces, mientras trabajamos con registros, podemos tener problemas en los que necesitamos realizar la suma de claves anidadas de una clave y registrar la suma como el valor de la clave. Esto puede tener posibles aplicaciones en dominios como la ciencia de datos y el desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Usar bucle
Esta es una forma de fuerza bruta en la que podemos realizar esta tarea. En esto, iteramos a través del diccionario anidado, sumando los valores y asignándolos a la clave respectiva.

# Python3 code to demonstrate working of 
# Nested record values summation
# Using loop
  
# initializing dictionary
test_dict = {'gfg' : {'a' : 4, 'b' : 5, 'c' : 6},
             'is' : {'a': 2, 'b' : 9, 'c' : 10},
             'best' : {'a' : 10, 'b' : 2, 'c' : 12}}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Nested record values summation
# Using loop
res = dict()
for sub in test_dict:
    sum = 0
    for keys in test_dict[sub]:
        sum = sum + test_dict[sub][keys]
    res[sub] = sum
      
# printing result 
print("The dictionary after keys summation is : " + str(res)) 
Producción :

The original dictionary is : {'best': {'a': 10, 'c': 12, 'b': 2}, 'is': {'a': 2, 'c': 10, 'b': 9}, 'gfg': {'a': 4, 'c': 6, 'b': 5}}
The dictionary after keys summation is : {'best': 24, 'is': 21, 'gfg': 15}

Método n.º 2: usarsum()
Esto es otra forma más en la que se puede realizar esta tarea. En esto, realizamos la tarea de cálculo usando sum().

# Python3 code to demonstrate working of 
# Nested record values summation
# Using sum()
from collections import Counter
  
# initializing dictionary
test_dict = {'gfg' : {'a' : 4, 'b' : 5, 'c' : 6},
             'is' : {'a': 2, 'b' : 9, 'c' : 10},
             'best' : {'a' : 10, 'b' : 2, 'c' : 12}}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Nested record values summation
# Using sum()
res = dict()
for sub in test_dict:
    res[sub] = sum([test_dict[sub][ele] for ele in test_dict[sub]])
  
# printing result 
print("The dictionary after keys summation is : " + str(dict(res))) 
Producción :

The original dictionary is : {'best': {'a': 10, 'c': 12, 'b': 2}, 'is': {'a': 2, 'c': 10, 'b': 9}, 'gfg': {'a': 4, 'c': 6, 'b': 5}}
The dictionary after keys summation is : {'best': 24, 'is': 21, 'gfg': 15}

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 *