Как добавить во вложенный словарь в python - PullRequest
0 голосов
/ 09 января 2020

У меня есть следующий вложенный словарь:

d = {'A':{'a':1}, 'B':{'b':2}}

Я хочу добавить значения к d без перезаписи.

Так что, если я хочу добавить значение ['A', 'b', 3] словарь должен читать:

d = {'A':{'a':1, 'b':3}, 'B':{'b':2}}

d['A'].append({'b':3}) ошибки с:

AttributeError: у объекта 'dict' нет атрибута 'append'

Я не знаю, какой будет вложенный словарь заранее. Так что:

d['A'] = {'a':1, 'b':3}

не будет работать для моего случая, так как я "обнаруживаю / вычисляю" значения во время выполнения скрипта.

Спасибо

Ответы [ 2 ]

5 голосов
/ 09 января 2020

В python, append только для списков, а не словарей.

Это должно делать то, что вы хотите:

d['A']['b'] = 3

Объяснение: Когда вы пишете d['A'], вы получаете другой словарь (тот, чей ключ - A), и затем вы можете использовать другой набор скобок для добавления или доступа к записям во втором словаре.

4 голосов
/ 09 января 2020

Вы ищете метод update :

d['A'].update({'b':3})
...