Предположим, у меня есть два слова в Python:
mydict = { 'a': 0 }
defaults = {
'a': 5,
'b': 10,
'c': 15
}
Я хочу иметь возможность расширять mydict
, используя значения по умолчанию от defaults
, так что «a» остается тем же, а «b» и «c» заполнены. Я знаю о dict.setdefault()
и dict.update()
, но каждый из них выполняет только половину того, что я хочу - с dict.setdefault()
я должен циклически перебирать каждую переменную в defaults
; но с dict.update()
, defaults
сместит любые ранее существующие значения в mydict
.
Есть ли какая-то функциональность, которую я не нахожу встроенной в Python, которая может сделать это? А если нет, то есть ли более Pythonic способ написания цикла для многократного вызова dict.setdefaults()
, чем этот:
for key in defaults.keys():
mydict.setdefault(key, defaults[key])
Контекст: я записываю некоторые данные в Python, которые контролируют, как анализировать дерево XML. Для каждого узла есть требование (то есть, как обрабатывать каждый узел), и я бы предпочел, чтобы данные, которые я записываю, были редкими, но заполненными значениями по умолчанию. Пример кода является просто примером ... реальный код имеет гораздо больше пар ключ / значение в стандартном dict.
(Я понимаю, что весь этот вопрос - всего лишь незначительная болтовня, но это беспокоит меня, поэтому мне было интересно, есть ли лучший способ сделать это, о котором я не знаю.)