Искал во многих местах ответ - не нашел. Писал самостоятельно - замучался.
Есть дефолтный словарь, а есть переопределенный, представим, что они выглядят вот так:
default = {
'some_number': 5,
'numbers': {
'1': 1,
'2': 2,
'3': 3
},
'additional_number': 15
}
overridden = {
'some_number': 10,
'numbers': {
'1': 2
}
}
Если вызвать следующий код:
default.update(overridden)
То на выходе получится такой словарь:
overridden = {
'some_number': 10,
'numbers': {
'1': 2
}
'additional_number': 15
}
То есть ключи, которые были изначально определены в подсловаре словаря default не были добавлены в измененную версию. Мне нужно, чтобы ключи переопределялись, и те, которые не были переопределены оставались на месте. Есть ли какой-то лаконичный способ решить эту проблему? Потому-что городить у себя что-то низкоуровневое желания нет, опускался сегодня до того, что писал метод, который собирает все переопределенные ключи, определяя, переопределены ли они, в цикле оператором != и потом искал среди этих ключей словари, но от такого ужаса голова дымит. Помогите!!!