Skip to content
Related Articles
Open in App
Not now

Related Articles

Python | Merging two Dictionaries

Improve Article
Save Article
  • Difficulty Level : Basic
  • Last Updated : 29 Dec, 2022
Improve Article
Save Article

There are various ways in which Dictionaries can be merged by the use of various functions and constructors in Python. In this article, we will discuss a few ways of merging dictionaries. 

Using the method update() 

By using the method update() in Python, one list can be merged into another. But in this, the second list is merged into the first list and no new list is created. It returns None

Example: 

Python3




# Python code to merge dict using update() method
def Merge(dict1, dict2):
    return(dict2.update(dict1))
 
 
# Driver code
dict1 = {'a': 10, 'b': 8}
dict2 = {'d': 6, 'c': 4}
 
# This returns None
print(Merge(dict1, dict2))
 
# changes made in dict2
print(dict2)

Output:

None
{'c': 4, 'a': 10, 'b': 8, 'd': 6}

Using ** in Python 
 

This is generally considered a trick in Python where a single expression is used to merge two dictionaries and stored in a third dictionary. The single expression is **. This does not affect the other two dictionaries. ** implies that an argument is a dictionary. Using ** [double star] is a shortcut that allows you to pass multiple arguments to a function directly using a dictionary. For more information refer **kwargs in Python. Using this we first pass all the elements of the first dictionary into the third one and then pass the second dictionary into the third. This will replace the duplicate keys of the first dictionary. 
 

Example: 

Python3




# Python code to merge dict using a single
# expression
def Merge(dict1, dict2):
    res = {**dict1, **dict2}
    return res
     
# Driver code
dict1 = {'a': 10, 'b': 8}
dict2 = {'d': 6, 'c': 4}
dict3 = Merge(dict1, dict2)
print(dict3)

Output

{'a': 10, 'b': 8, 'd': 6, 'c': 4}

Using | in Python 3.9

In the latest update of python now we can use “|” operator to merge two dictionaries. It is a very convenient method to merge dictionaries.

Example:

Python3




# code
# Python code to merge dict using a single 
# expression
def Merge(dict1, dict2):
    res = dict1 | dict2
    return res
       
# Driver code
dict1 = {'x': 10, 'y': 8}
dict2 = {'a': 6, 'b': 4}
dict3 = Merge(dict1, dict2)
print(dict3)
 
# This code is contributed by virentanti16

Output:

{'x': 10, 'a': 6,  'b': 4, 'y': 8}

Using for loop and keys() method

Python3




# code
# Python code to merge dictionary
def Merge(dict1, dict2):
    for i in dict2.keys():
        dict1[i]=dict2[i]
    return dict1
     
# Driver code
dict1 = {'x': 10, 'y': 8}
dict2 = {'a': 6, 'b': 4}
dict3 = Merge(dict1, dict2)
print(dict3)
 
# This code is contributed by Bhavya Koganti

Output

{'x': 10, 'y': 8, 'a': 6, 'b': 4}

One new approach to merge dictionaries in Python is to use the built-in ChainMap class from the collections module. This class allows you to create a single view of multiple dictionaries, and any updates or changes made to the ChainMap will be reflected in the underlying dictionaries.

Here’s an example of how to use ChainMap to merge two dictionaries:

Python3




from collections import ChainMap
 
# create the dictionaries to be merged
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
 
# create a ChainMap with the dictionaries as elements
merged_dict = ChainMap(dict1, dict2)
 
# access and modify elements in the merged dictionary
print(merged_dict['a'])  # prints 1
print(merged_dict['c'])  # prints 3
merged_dict['c'] = 5  # updates value in dict2
print(merged_dict['c'])  # prints 5
 
# add a new key-value pair to the merged dictionary
merged_dict['e'] = 6  # updates dict1
print(merged_dict['e'])  # prints 6

Output

1
3
5
6

Using ChainMap to merge dictionaries is a concise and efficient way to combine multiple dictionaries, and allows you to easily update and modify the merged dictionary.


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!