Python | Combine the values of two dictionaries having same key

Dictionary is a collection which is unordered, changeable and indexed. In Python, dictionaries are written with curly brackets, and they have keys and values. It is widely used in day to day programming, web development, and machine learning. Combining dictionaries is very common task in operations of dictionary.

Let’s see how to combine the values of two dictionaries having same key.

Method #1: Using Counter
Counter is a special subclass of dictionary which performs acts same as dictionary in most cases.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python code to demonstrate combining 
# two dictionaries having same key
  
from collections import Counter
  
# initialising dictionaries
ini_dictionary1 = Counter({'nikhil': 1, 'akash' : 5,
                     'manjeet' : 10, 'akshat' : 15})
ini_dictionary2 = Counter({'akash' : 7, 'akshat' : 5,
                                          'm' : 15})
  
# printing initial dictionaries
print ("initial 1st dictionary", str(ini_dictionary1))
print ("initial 2nd dictionary", str(ini_dictionary2))
  
# combining dictionaries
# using Counter
final_dictionary = ini_dictionary1 + ini_dictionary2
  
# printing final result
print ("final dictionary", str(final_dictionary))

chevron_right


Output:

initial 1st dictionary Counter({‘akshat’: 15, ‘manjeet’: 10, ‘akash’: 5, ‘nikhil’: 1})
initial 2nd dictionary Counter({‘m’: 15, ‘akash’: 7, ‘akshat’: 5})
final dictionary Counter({‘akshat’: 20, ‘m’: 15, ‘akash’: 12, ‘manjeet’: 10, ‘nikhil’: 1})

 
Method #2: Using dict() and items
This method is for Python version 2.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python code to demonstrate combining 
# two dictionaries having same key
  
  
# initialising dictionaries
ini_dictionary1 = {'nikhil': 1, 'akash' : 5,
              'manjeet' : 10, 'akshat' : 15}
ini_dictionary2 = {'akash' : 7, 'akshat' : 5,
                                    'm' : 15}
  
# printing initial dictionaries
print ("initial 1st dictionary", str(ini_dictionary1))
print ("initial 2nd dictionary", str(ini_dictionary2))
  
# combining dictionaries
# using dict() and items()
final_dictionary = dict(ini_dictionary1.items() + ini_dictionary2.items() +
                    [(k, ini_dictionary1[k] + ini_dictionary2[k])
                    for k in set(ini_dictionary2)
                    & set(ini_dictionary1)])
  
# printing final result
print ("final dictionary", str(final_dictionary))

chevron_right


Output:

(‘initial 1st dictionary’, “{‘manjeet’: 10, ‘nikhil’: 1, ‘akshat’: 15, ‘akash’: 5}”)
(‘initial 2nd dictionary’, “{‘m’: 15, ‘akshat’: 5, ‘akash’: 7}”)
(‘final dictionary’, “{‘nikhil’: 1, ‘m’: 15, ‘manjeet’: 10, ‘akshat’: 20, ‘akash’: 12}”)

 
Method #3: Using dict comprehension and set

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python code to demonstrate combining 
# two dictionaries having same key
  
# initialising dictionaries
ini_dictionary1 = {'nikhil': 1, 'akash' : 5
              'manjeet' : 10, 'akshat' : 15}
ini_dictionary2 = {'akash' : 7, 'akshat' : 5
                                    'm' : 15}
  
# printing initial dictionaries
print ("initial 1st dictionary", str(ini_dictionary1))
print ("initial 2nd dictionary", str(ini_dictionary2))
  
# combining dictionaries
# using dict comprehension and set
final_dictionary =  {x: ini_dictionary1.get(x, 0) + ini_dictionary2.get(x, 0)
                    for x in set(ini_dictionary1).union(ini_dictionary2)}
  
# printing final result
print ("final dictionary", str(final_dictionary))

chevron_right


Output:

initial 1st dictionary {‘nikhil’: 1, ‘akshat’: 15, ‘akash’: 5, ‘manjeet’: 10}
initial 2nd dictionary {‘akshat’: 5, ‘akash’: 7, ‘m’: 15}
final dictionary {‘nikhil’: 1, ‘akshat’: 20, ‘akash’: 12, ‘m’: 15, ‘manjeet’: 10}



My Personal Notes arrow_drop_up

Programming freaktech Enthusiast and have interest in learning new upcoming technologies

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.