Python - Extrahieren Sie Wörterbücher mit einer Wertsumme größer als K.
Extrahieren Sie anhand einer Wörterbuchliste alle Wörterbücher, deren Schlüsselsumme K überschreitet.
Eingabe : test_list = [{"Gfg": 4, "ist": 8, "beste": 9}, {"Gfg": 3, "ist": 7, "beste": 5}], K = 15
Ausgabe : [{'Gfg': 4, 'is': 8, 'best': 9}]
Erläuterung : 4 + 9 + 8 = 21. Größer als K, daher zurückgegeben.Eingabe : test_list = [{"Gfg": 4, "ist": 8, "beste": 9}, {"Gfg": 3, "ist": 7, "beste": 5}], K = 25
Ausgabe : []
Erläuterung : Kein Wörterbuch mit Summe> 25.
Methode 1: Verwenden der Schleife
Dies ist eine brutale Art und Weise, wie diese Aufgabe ausgeführt werden kann. Dabei iterieren wir für alle Wörterbücher und extrahieren die Summe der Wörterbücher, die K überschreitet, und filtern sie heraus.
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))
Die ursprüngliche Liste: [{'Gfg': 4, 'ist': 8, 'am besten': 9}, {'Gfg': 5, 'ist': 8, 'am besten': 1}, {'Gfg': 3, 'ist': 7, 'am besten': 6}, {'Gfg': 3, 'ist': 7, 'am besten': 5}] Wörterbücher mit einer Summe größer als K: [{'Gfg': 4, 'ist': 8, 'am besten': 9}, {'Gfg': 3, 'ist': 7, 'am besten': 6}]
Methode 2: Verwenden von Listenverständnis + sum()
Dies ist eine einzige Methode, mit der diese Aufgabe ausgeführt werden kann. In diesem Fall führen wir die Aufgabe der Summierung mit sum() aus, und das Listenverständnis kann verwendet werden, um die Aufgabe auszuführen, die gesamte Logik in einer einzigen Zeile zu kombinieren.
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))
Die ursprüngliche Liste: [{'Gfg': 4, 'ist': 8, 'am besten': 9}, {'Gfg': 5, 'ist': 8, 'am besten': 1}, {'Gfg': 3, 'ist': 7, 'am besten': 6}, {'Gfg': 3, 'ist': 7, 'am besten': 5}] Wörterbücher mit einer Summe größer als K: [{'Gfg': 4, 'ist': 8, 'am besten': 9}, {'Gfg': 3, 'ist': 7, 'am besten': 6}]