Merge Dictionaries In Python

In our previous article we have seen that python dictionaries are one of the most widely used data structures in python for various data processing operations. Also we introduce you to an exciting dictionary technique called Dictionary Comprehension. In this article we will be covering different methods for merging dictionaries.
1. Using |
operator
Using the |
operator we can create a new dictionary with elements from both the dictionary. This was first introduced in Python 3.9.
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
merged_dict = dict1 | dict2
print(merged_dict) # Output: {'a': 1, 'b': 3, 'c': 4}
2. Using update()
method
The update()
method modifies an existing dictionary in place by adding key-value pairs from another dictionary.
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1.update(dict2)
print(dict1) # Output: {'a': 1, 'b': 3, 'c': 4}
3. Using **
Operator
The
operator (Unpacking) to unpack the elements of multiple dictionaries and combine them into a new dictionary. This was available from python version 3.5 and above.*
*
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
merged_dict = {**dict1, **dict2}
print(merged_dict) # Output: {'a': 1, 'b': 3, 'c': 4}
4. Using Dictionary Comprehension
Dictionary comprehension
can also be used to merge dictionaries. In our article on dictionary comprehension, we explored its capabilities and demonstrated how it works.
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
merged_dict = {key: dict2[key] if key in dict2 else dict1[key] for key in dict1.keys() | dict2.keys()}
print(merged_dict) # Output: {'a': 1, 'b': 3, 'c': 4}
5. Using for loop
Dictionaries can be merged using a simple for
loop.
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
merged_dict = {}
for key, value in dict1.items():
merged_dict[key] = value
for key, value in dict2.items():
merged_dict[key] = value
print(merged_dict) # Output: {'a': 1, 'b': 3, 'c': 4}
6. Using collections.ChainMap
method
The
method from the collections module is used to combine multiple dictionaries. This is suitable when we are dealing with a large datasets.ChainMap
()
from collections import ChainMap
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
merged_dict = dict(ChainMap(dict2, dict1))
print(merged_dict) # Output: {'a': 1, 'b': 3, 'c': 4}
Conclusion
In this blog, we’ve covered various ways to merge dictionaries in Python, including the |
operator, update()
method, dictionary comprehension, and advanced techniques like collections.ChainMap
. The | operator and update()
are simple for basic merges, while
and unpacking with collections.ChainMap
**
are more efficient for larger or more complex tasks. It is important to know these methods. They help you choose the best one for your needs. This ensures your code is clean, efficient, and easy to read.