PYTHON
Efficiently Merge Multiple Dictionaries in Python
Learn modern Python techniques to efficiently merge two or more dictionaries into a single new dictionary using the `**` operator (Python 3.5+) or the `|` operator (Python 3.9+) for clean and concise code.
# Python 3.5+ using unpacking operator (**)
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
merged_dict_unpacking = {**dict1, **dict2}
print(f"Merged (unpacking): {merged_dict_unpacking}")
# Python 3.9+ using dictionary union operator (|)
dict3 = {'e': 5, 'f': 6}
dict4 = {'g': 7, 'h': 8}
merged_dict_union = dict3 | dict4
print(f"Merged (union): {merged_dict_union}")
# Merging with overlapping keys (right-most dict wins)
dict_overlap1 = {'x': 10, 'y': 20}
dict_overlap2 = {'y': 25, 'z': 30}
merged_overlap = {**dict_overlap1, **dict_overlap2}
print(f"Merged (overlap unpack): {merged_overlap}")
merged_overlap_union = dict_overlap1 | dict_overlap2
print(f"Merged (overlap union): {merged_overlap_union}")
How it works: This snippet demonstrates two highly efficient and Pythonic ways to merge dictionaries. For Python 3.5 and later, the dictionary unpacking operator `**` allows you to unpack multiple dictionaries into a new one. The new dictionary contains all key-value pairs, with later dictionaries overriding values for duplicate keys. For Python 3.9 and later, the `|` (union) operator provides an even more concise syntax for the same merging behavior. Both methods create a new dictionary without modifying the originals, making them ideal for immutable data operations.