Skip to content
Related Articles

Related Articles

Python – Extract dictionaries with values sum greater than K

View Discussion
Improve Article
Save Article
Like Article
  • Last Updated : 14 Oct, 2020

Given a dictionaries list, extract all the dictionaries whose keys summation exceeds K.

Input : test_list = [{“Gfg” : 4, “is” : 8, “best” : 9}, {“Gfg” : 3, “is”: 7, “best” : 5}], K = 15
Output : [{‘Gfg’: 4, ‘is’: 8, ‘best’: 9}]
Explanation : 4 + 9 + 8 = 21. Greater than K, hence returned.

Input : test_list = [{“Gfg” : 4, “is” : 8, “best” : 9}, {“Gfg” : 3, “is”: 7, “best” : 5}], K = 25
Output : []
Explanation : No dictionary with sum > 25.

Method #1 : Using loop

This is brute way in which this task can be performed. In this, we iterate for all the dictionaries and extract summation of each of them, which exceeds K, we filter them out.

Python3




# Python3 code to demonstrate working of 
# Extract dictionaries with values sum greater than K
# Using 
  
# initializing lists
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}]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing K 
K = 15
  
# using loop to extract all dictionaries
res = []
for sub in test_list:
    sum = 0
    for key in sub:
        sum += sub[key]
    if sum > K:
        res.append(sub)
  
# printing result 
print("Dictionaries with summation greater than K : " + str(res))

Output

The original 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}]
Dictionaries with summation greater than K : [{'Gfg': 4, 'is': 8, 'best': 9}, {'Gfg': 3, 'is': 7, 'best': 6}]

Method #2 : Using list comprehension + sum()

This is one liner way in which this task can be performed. In this, we perform the task of summation using sum() and list comprehension can be used to perform task of combining all the logic into single line.

Python3




# Python3 code to demonstrate working of 
# Extract dictionaries with values sum greater than K
# Using list comprehension + sum()
  
# initializing lists
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}]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing K 
K = 15
  
# using one-liner to extract all the dictionaries
res = [sub for sub in test_list if sum(list(sub.values())) > K]
  
# printing result 
print("Dictionaries with summation greater than K : " + str(res))

Output

The original 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}]
Dictionaries with summation greater than K : [{'Gfg': 4, 'is': 8, 'best': 9}, {'Gfg': 3, 'is': 7, 'best': 6}]

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!