Как объединить 2 словаря одним выражением?

Каким образом можно объединить 2 словаря одним выражением?

Метод update() я бы использовать не хотел, так как он изменяет содержимое словаря, а не создаёт новый объект.


Ответы (2 шт):

Автор решения: MaxU

Для Python 3.5+ можно объединить два и более словарей следующим способом:

создаем словари:

In [1]: a = dict(a=1, b=2)

In [2]: b = dict(c=3, d=4, a=100)

получилось:

In [3]: a
Out[3]: {'a': 1, 'b': 2}

In [4]: b
Out[4]: {'c': 3, 'd': 4, 'a': 100}

объединяем:

In [5]: res = {**a, **b}

результат:

In [6]: res
Out[6]: {'a': 100, 'b': 2, 'c': 3, 'd': 4}

для Python 2.7 - решение предложенное @extrn в комментарии:

print dict({1: 2}, **{3: 4})     # в 3.x так нельзя
>>> {1: 2, 3: 4}

print dict({'1': 2}, **{'3': 4}) # но так - можно
>>> {'1': 2, '3': 4}
→ Ссылка
Автор решения: user405402

Я думаю что можно через команду union .

Вот пример

songs1 = {'Три белых коня', 'Happy new year', 'Снежинка'}

songs2 = {'Last christmas', 'Снежинка', 'Happy new year'}

print(songs1.union(songs2))

{'Три белых коня', 'Снежинка', 'Last christmas', 'Happy new year'}

→ Ссылка