Объединение двух словарей

Объединить два словаря в Python можно несколькими способами в зависимости от версии языка: через специальный оператор, через распаковку или через методы словаря. В статье рассмотрим все три подхода.

Что нужно знать

Перед изучением примера полезно понимать:

Пример 1. Оператор |

dict_1 = {1: 'a', 2: 'b'}
dict_2 = {2: 'c', 4: 'd'}

print(dict_1 | dict_2)

Вывод

{1: 'a', 2: 'c', 4: 'd'}

В Python 3.9 и более новых версиях для объединения словарей можно использовать оператор |.

Примечание

Если в словарях встречаются одинаковые ключи, в результате остаётся значение из правого (последнего) словаря.

Пример 2. Распаковка **

dict_1 = {1: 'a', 2: 'b'}
dict_2 = {2: 'c', 4: 'd'}

print({**dict_1, **dict_2})

Вывод

{1: 'a', 2: 'c', 4: 'd'}

Здесь оператор ** распаковывает оба словаря, а фигурные скобки собирают их элементы в один новый словарь.

Примечание

Этот способ работает в Python 3.5 и выше.

Пример 3. Методы copy() и update()

dict_1 = {1: 'a', 2: 'b'}
dict_2 = {2: 'c', 4: 'd'}

dict_3 = dict_2.copy()
dict_3.update(dict_1)

print(dict_3)

Вывод

{2: 'b', 4: 'd', 1: 'a'}

Сначала copy() создаёт копию словаря dict_2 под именем dict_3, а затем update() добавляет в неё пары из dict_1, перезаписывая совпадающие ключи.