В этой статье показаны различные способы объединения двух словарей в Python.
В словарях Python есть .update(other)
функция, которая обновляет словарь парами ключ/значение из других , перезаписывая существующие ключи.
Однако это изменяет исходный словарь на месте , а не возвращает новый.
x = {'a': 1, 'b': 2}
y = {'b': 8, 'c': 9}
x.update(y)
# x: {'a': 1, 'b': 8, 'c': 9}
Чтобы создать новый словарь с объединенными парами ключ/значение , вы можете использовать разные методы, в зависимости от используемой версии Python.
В Python 3.9 или выше:
z = x | y
# z: {'a': 1, 'b': 8, 'c': 9}
В Python 3.5 или выше:
z = {**x, **y} # z: {'a': 1, 'b': 8, 'c': 9}
Это также известно как распаковка словаря . Он был введен в PEP 448 .
Python 3.4 или ниже:
z = x.copy() z.update(y) # z: {'a': 1, 'b': 8, 'c': 9}
Обратите внимание, что если вы просто используете z = x
, создается только неглубокая копия. Это означает, что даже после обновления z изменение x также приведет к обновлению z и наоборот.
Так что для того, чтобы создать истинную копию, x.copy()
используется здесь.