Às vezes, ao trabalhar com dicionários Python, podemos ter problemas em que temos registros aninhados e precisamos da soma cumulativa de seus valores de chave. Isso pode ter aplicação possível em domínios como desenvolvimento web e programação competitiva. Vamos discutir algumas maneiras pelas quais essa tarefa pode ser executada.

Método # 1: Usando loop +items() + values()
A combinação das funcionalidades acima pode ser usada para resolver este problema. Neste, iteramos por todos os valores extraídos usando values ​​() e executamos a tarefa de soma.

test_dict = {'gfg' : {'a' : 4, 'b' : 5, 'c' : 8}, 
             'is' : {'a' : 8, 'c' : 10}, 
             'best' : {'c' : 19, 'b' : 10}} 
print("The original dictionary is : " + str(test_dict)) 
res = dict() 
for sub in test_dict.values(): 
    for key, ele in sub.items(): 
        res[key] = ele + res.get(key, 0) 
print("The summation dictionary is : " + str(res))  
Resultado :

O dicionário original é: {'gfg': {'a': 4, 'b': 5, 'c': 8}, 'melhor': {'b': 10, 'c': 19}, 'é ': {' a ': 8,' c ': 10}}
O dicionário de soma é: {' a ': 12,' b ': 15,' c ': 37}

 



Método 2: UsandoCounter() + values()
A combinação dos métodos acima pode ser usada para executar esta tarefa. Nesse caso, salvamos a frequência necessária usando Counter() e a extração de valores pode ser feita usando values ​​().

from collections import Counter 
test_dict = {'gfg' : {'a' : 4, 'b' : 5, 'c' : 8}, 
             'is' : {'a' : 8, 'c' : 10}, 
             'best' : {'c' : 19, 'b' : 10}} 
print("The original dictionary is : " + str(test_dict)) 
res = Counter() 
for val in test_dict.values(): 
    res.update(val) 
      
print("The summation dictionary is : " + str(dict(res)))  
Resultado :

O dicionário original é: {'gfg': {'a': 4, 'b': 5, 'c': 8}, 'melhor': {'b': 10, 'c': 19}, 'é ': {' a ': 8,' c ': 10}}
O dicionário de soma é: {' a ': 12,' b ': 15,' c ': 37}