В Python 3.9+ оператор a | b создаёт новый объединённый словарь, а a |= b обновляет a. При одинаковом ключе значение справа заменяет значение слева.
Как объединить два словаря в Python 3.9+?
В Python 3.9+ оператор a | b создаёт новый объединённый словарь, а a |= b обновляет a. При одинаковом ключе значение справа заменяет значение слева.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Python 3.9+ оператор a | b создаёт новый объединённый словарь, а a |= b обновляет a. При одинаковом ключе значение справа заменяет значение слева.
Например, {'x': 1} | {'x': 2, 'y': 3} даёт {'x': 2, 'y': 3}. Это поверхностное объединение: вложенные словари не сливаются рекурсивно, а значения остаются ссылками на объекты. Ключи сохраняют порядок первого появления, обновление значения не переносит существующий ключ. Для более старого кода доступны update() и распаковка **, но нужно понимать, изменяется ли исходный словарь.