#python #python_3x #словари
Подскажите пожалуйста, как работает добавление в словари? Например, есть пустой словарь: b = {} Я хочу добавить, b['id']['type'] = 5 Получаю ошибку: Traceback (most recent call last): File "", line 1, in b['id']['type'] = 5 KeyError: 'id' Может есть какой-то другой способ записи, кроме: b['id'] = {'type': 5}
Ответы
Ответ 1
Используйте defaultdict: from collections import defaultdict b = defaultdict(dict) b['id']['type'] = 5 print(b) # defaultdict(dict, {'id': {'type': 5}}) Тут вы указываете, что создаете словарь, каждое значение которого по-умолчанию - пустой словарь.Ответ 2
Для создания новых значений с глубокой степенью вложенности можно воспользоваться модулем dpath: import dpath # pip install dpath b = {} dpath.util.new(b, '/id/type', 5) результат: In [79]: b Out[79]: {'id': {'type': 5}} добавляем еще один вложенный словарь: dpath.util.new(b, '/id/sub1/sub2/sub3/val', [1,2,3]) результат: In [81]: b Out[81]: {'id': {'type': 5, 'sub1': {'sub2': {'sub3': {'val': [1, 2, 3]}}}}}
Комментариев нет:
Отправить комментарий