PYTHON
Merging Python Dictionaries
Learn to efficiently combine two or more Python dictionaries using modern syntax like the `|` operator and the `**` unpacking operator for versatile merging.
dict1 = {'name': 'Alice', 'age': 30}
dict2 = {'city': 'New York', 'age': 31} # Note: age will be overridden
dict3 = {'occupation': 'Engineer'}
# Python 3.9+ using | operator (merges dict2 into dict1, dict3 into result)
merged_dict_modern = dict1 | dict2 | dict3
print(f"Modern merge: {merged_dict_modern}")
# Using ** unpacking operator (works in older Python versions too)
merged_dict_unpacking = {**dict1, **dict2, **dict3}
print(f"Unpacking merge: {merged_dict_unpacking}")
# Example with nested dictionaries (simple merge, deeper merge requires custom logic)
nested_dict1 = {'user': {'id': 1, 'name': 'Bob'}}
nested_dict2 = {'user': {'email': '[email protected]'}}
merged_nested = {**nested_dict1, **nested_dict2} # This will override 'user' completely
print(f"Nested merge (override): {merged_nested}")
# For a deep merge, a custom function is needed, but simple merge is highly common.
How it works: This snippet demonstrates two Pythonic ways to merge dictionaries. The `|` operator (Python 3.9+) provides a clean way to combine multiple dictionaries, with keys from later dictionaries overriding those from earlier ones. The `**` unpacking operator achieves a similar result and is compatible with older Python versions, effectively merging key-value pairs into a new dictionary. This is fundamental for combining configuration, user data, or API responses in web applications.