dict = {**dict1, **dict2}
# Новое в Python 3.9
dict = dict1 | dict2
dict1
, dict2
- объединяемые словари.dict
.Выражение {**dict1, **dict2}
создает новый словарь с объединенными ключами и значениями из dict1
и dict2
, которые оба должны быть словарями.
Значения ключей словаря dict2
имеют приоритет, когда dict1
и dict2
используют одинаковые ключи key
.
Важно понимать отличие операции объединения/слияния словарей от операции обновления/дополнения. Отличие заключается в том, что в результате операции объединения/слияния {**dict1, **dict2}
образуется новый словарь (исходные словари не изменяются), а при операции обновления/дополнения изменяется исходный словарь dict
.
>>> x = {"key1": "value1 from x", "key2": "value2 from x"}
>>> y = {"key2": "value2 from y", "key3": "value3 from y"}
# объединение словаря `x` с `y`
>>> {**x, **y}
# {'key1': 'value1 from x', 'key2': 'value2 from y', 'key3': 'value3 from y'}
# объединение словаря `y` с `x`
>>> {**y, **x}
# {'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'}
# Новое в Python 3.9
>>> x | y
# {'key1': 'value1 from x', 'key2': 'value2 from y', 'key3': 'value3 from y'}
>>> y | x
# {'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'}