В Python 3.5+ используйте оператор **
:
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
merged_dict = {**dict1, **dict2}
print(merged_dict) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
В Python 3.9+ используйте оператор |
:
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
merged_dict = dict1 | dict2
print(merged_dict) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
Для обновления словаря (изменения dict1 на месте), используйте метод update()
:
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
dict1.update(dict2)
print(dict1) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
Объединить два словаря в Python можно несколькими способами, каждый из которых имеет свои нюансы:
|
(Python 3.9+)Это самый современный и, пожалуй, наиболее читаемый способ, доступный начиная с Python 3.9. Он создает новый словарь, объединяя элементы из обоих словарей. Если ключи совпадают, то значение из второго словаря перезапишет значение из первого.
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict3 = dict1 | dict2
print(dict3) # Output: {'a': 1, 'b': 3, 'c': 4}
|=
(Python 3.9+)Похож на |
, но изменяет словарь, стоящий слева, вместо создания нового. Эквивалентен dict1 = dict1 | dict2
.
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1 |= dict2
print(dict1) # Output: {'a': 1, 'b': 3, 'c': 4}
.update()
Метод .update()
изменяет словарь, к которому он применяется, добавляя или перезаписывая элементы из другого словаря.
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1.update(dict2)
print(dict1) # Output: {'a': 1, 'b': 3, 'c': 4}
Этот способ также создает новый словарь и доступен начиная с Python 3.5. Он использует оператор распаковки **
для разворачивания ключей и значений обоих словарей.
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict3 = {**dict1, **dict2}
print(dict3) # Output: {'a': 1, 'b': 3, 'c': 4}
Какой способ выбрать?
|
или |=
- самые предпочтительные из-за своей краткости и читаемости.**
- отличный вариант..update()
- наиболее универсальный, но изменяет исходный словарь.При выборе способа объединения словарей важно учитывать версию Python, которую вы используете, а также то, нужно ли вам создать новый словарь или изменить существующий.