Python - soma dos valores do dicionário aninhado
À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
}}
(
"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
)
(
"The summation dictionary is : "
+
str
(res))
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
}}
(
"The original dictionary is : "
+
str
(test_dict))
res
=
Counter()
for
val
in
test_dict.values():
res.update(val)
(
"The summation dictionary is : "
+
str
(
dict
(res)))
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}
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva