Объединение двух словарей
Объединить два словаря в Python можно несколькими способами в зависимости от версии языка: через специальный оператор, через распаковку или через методы словаря. В статье рассмотрим все три подхода.
Что нужно знать
Перед изучением примера полезно понимать:
Словари (Dictionary) в Python — словари
*args и **kwargs в Python —
*argsи**kwargs
Пример 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, перезаписывая совпадающие ключи.