Python - Extraia dicionários com soma de valores maior que K
Dada uma lista de dicionários, extraia todos os dicionários cuja soma de chaves exceda K.
Entrada : test_list = [{“Gfg”: 4, “é”: 8, “melhor”: 9}, {“Gfg”: 3, “é”: 7, “melhor”: 5}], K = 15
Saída : [{'Gfg': 4, 'é': 8, 'melhor': 9}]
Explicação : 4 + 9 + 8 = 21. Maior que K, portanto, retornado.Entrada : test_list = [{“Gfg”: 4, “é”: 8, “melhor”: 9}, {“Gfg”: 3, “é”: 7, “melhor”: 5}], K = 25
Saída : []
Explicação : Nenhum dicionário com soma> 25.
Método # 1: usando loop
Esta é a maneira bruta pela qual essa tarefa pode ser realizada. Neste, iteramos para todos os dicionários e extraímos o somatório de cada um deles, que excede K, os filtramos.
test_list
=
[{
"Gfg"
:
4
,
"is"
:
8
,
"best"
:
9
},
{
"Gfg"
:
5
,
"is"
:
8
,
"best"
:
1
},
{
"Gfg"
:
3
,
"is"
:
7
,
"best"
:
6
},
{
"Gfg"
:
3
,
"is"
:
7
,
"best"
:
5
}]
(
"The original list : "
+
str
(test_list))
K
=
15
res
=
[]
for
sub
in
test_list:
sum
=
0
for
key
in
sub:
sum
+
=
sub[key]
if
sum
> K:
res.append(sub)
(
"Dictionaries with summation greater than K : "
+
str
(res))
A lista original: [{'Gfg': 4, 'é': 8, 'melhor': 9}, {'Gfg': 5, 'é': 8, 'melhor': 1}, {'Gfg': 3, 'é': 7, 'melhor': 6}, {'Gfg': 3, 'é': 7, 'melhor': 5}] Dicionários com soma maior que K: [{'Gfg': 4, 'é': 8, 'melhor': 9}, {'Gfg': 3, 'é': 7, 'melhor': 6}]
Método 2: usando a compreensão da lista + sum()
Esta é uma maneira linear pela qual essa tarefa pode ser executada. Neste, realizamos a tarefa de soma usando sum() e a compreensão de lista pode ser usada para realizar a tarefa de combinar toda a lógica em uma única linha.
test_list
=
[{
"Gfg"
:
4
,
"is"
:
8
,
"best"
:
9
},
{
"Gfg"
:
5
,
"is"
:
8
,
"best"
:
1
},
{
"Gfg"
:
3
,
"is"
:
7
,
"best"
:
6
},
{
"Gfg"
:
3
,
"is"
:
7
,
"best"
:
5
}]
(
"The original list : "
+
str
(test_list))
K
=
15
res
=
[sub
for
sub
in
test_list
if
sum
(
list
(sub.values())) > K]
(
"Dictionaries with summation greater than K : "
+
str
(res))
A lista original: [{'Gfg': 4, 'é': 8, 'melhor': 9}, {'Gfg': 5, 'é': 8, 'melhor': 1}, {'Gfg': 3, 'é': 7, 'melhor': 6}, {'Gfg': 3, 'é': 7, 'melhor': 5}] Dicionários com soma maior que K: [{'Gfg': 4, 'é': 8, 'melhor': 9}, {'Gfg': 3, 'é': 7, 'melhor': 6}]
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