New in Python 3.9: Use the union operator (|
) to merge dict
s similar to set
s:
>>> d = {'a': 1, 'b': 2}
>>> e = {'a': 9, 'c': 3}
>>> d | e
{'a': 9, 'b': 2, 'c': 3}
For matching keys, the right dict
takes precedence.
This also works for |=
to modify a dict
in-place:
>>> e |= d # e = e | d
>>> e
{'a': 1, 'c': 3, 'b': 2}
Multiple unions per line are also possible:
>>> {'a': 1} | {'b': 2} | {'c': 3}
{'a': 1, 'b': 2, 'c': 3}
Could be useful for something like module_defaults | user_defaults | user_arguments
.