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}] 
  
print("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) 
  
print("Dictionaries with summation greater than K : " + str(res)) 
Ausgabe
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}] 
  
print("The original list : " + str(test_list)) 
  
K = 15
  
res = [sub for sub in test_list if sum(list(sub.values())) > K] 
  
print("Dictionaries with summation greater than K : " + str(res)) 
Ausgabe
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}]