Skip to content
Related Articles

Related Articles

Python – Dictionary Values Mapped Summation

View Discussion
Improve Article
Save Article
  • Last Updated : 07 Apr, 2021

Given a dictionary with a values list, our task is to extract the sum of values, found using mappings.

Input : test_dict = {4 : [‘a’, ‘v’, ‘b’, ‘e’],

             1 : [‘g’, ‘f’, ‘g’],

             3 : [‘e’, ‘v’]}, map_vals = {‘a’ : 3, ‘g’ : 8, ‘f’ : 10, ‘b’ : 4, ‘e’ : 7, ‘v’ : 2}

Output : {4: 16, 1: 26, 3: 9}

Explanation : “g” has 8, “f” has 10 as magnitude, hence 1 is mapped by 8 + 8 + 10 = 26. ( sum of list mapped ).

Input : test_dict = {4 : [‘a’, ‘v’, ‘b’, ‘e’],

             1 : [‘g’, ‘f’, ‘g’]}, map_vals = {‘a’ : 3, ‘g’ : 8, ‘f’ : 10, ‘b’ : 4, ‘e’ : 7, ‘v’ : 2}

Output : {4: 16, 1: 26}

Explanation : “g” has 8, “f” has 10 as magnitude, hence 1 is mapped by 8 + 8 + 10 = 26. ( sum of list mapped ).

Method 1 : Using loop + items()

In this, each key is iterated in the dictionary and each value of each dict. is iterated and summed using mapped sum dictionary initialized.

Python3




# Python3 code to demonstrate working of
# Dictionary Values Mapped Summation
# Using loop + items()
  
# initializing dictionary
test_dict = {4 : ['a', 'v', 'b', 'e'],
             1 : ['g', 'f', 'g'],
             3 : ['e', 'v']}
               
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# values mapped 
map_vals = {'a' : 3, 'g' : 8, 'f' : 10,
            'b' : 4, 'e' : 7, 'v' : 2}
  
res = dict()
# items() getting keys and values
for key, vals in test_dict.items():
    sum = 0
    for val in vals:
          
        # summing with mappings
        sum += map_vals[val]
    res[key] = sum
  
# printing result
print("The extracted values sum : " + str(res))

Output:

The original dictionary is : {4: [‘a’, ‘v’, ‘b’, ‘e’], 1: [‘g’, ‘f’, ‘g’], 3: [‘e’, ‘v’]}

The extracted values sum : {4: 16, 1: 26, 3: 9}

Method #2 : Using dictionary comprehension + sum()

In this, we perform the task of getting sum of each value using sum(). The dictionary comprehension is used for getting keys and assigning to values sum corresponding in shorthand. 

Python3




# Python3 code to demonstrate working of
# Dictionary Values Mapped Summation
# Using dictionary comprehension + sum()
  
# initializing dictionary
test_dict = {4 : ['a', 'v', 'b', 'e'],
             1 : ['g', 'f', 'g'],
             3 : ['e', 'v']}
               
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# values mapped 
map_vals = {'a' : 3, 'g' : 8, 'f' : 10,
            'b' : 4, 'e' : 7, 'v' : 2}
  
# sum() gets sum of each mapped values 
res = {key : sum(map_vals[val] for val in vals) 
       for key, vals in test_dict.items()}
  
# printing result
print("The extracted values sum : " + str(res))

Output:

The original dictionary is : {4: [‘a’, ‘v’, ‘b’, ‘e’], 1: [‘g’, ‘f’, ‘g’], 3: [‘e’, ‘v’]}

The extracted values sum : {4: 16, 1: 26, 3: 9}


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!