Итак, когда я вводил этот вопрос, я начал формировать представление о том, как это сделать, а затем я получил его. Поэтому, чтобы поделиться своими знаниями с тем, кто когда-либо понадобится, вот оно. Если вы знаете лучшие способы, вы можете публиковать различные решения!
def create_deep_dict(value, layers):
data = {}
layer = layers[0]
if layers[1:]:
data[layer] = create_deep_dict(value, layers[1:])
else:
data[layer] = value
return data
def deep_dict_value(data, layers):
layer = layers[0]
if layers[1:]:
return deep_dict_value(data[layer], layers[1:])
else:
return data[layer]
Так что, если вы используете эти функции, как это:
layers = ['layer1', 'layer2', 'layer3']
print 'create deep dict:'
data = create_deep_dict(layers, 'hello')
print data
print '\nretrieve value from deep dict:'
print deep_dict_value(layers, data)
Он будет:
create deep dict:
{'layer1': {'layer2': {'layer3': 'hello'}}}
retrieve value from deep dict:
hello
возможно дубликат [питон доступа вложенного словаря элементов с помощью списка ключей] (http://stackoverflow.com/questions/14692690/access-python-nested-dictionary-items-via-a-list- из-за ключей) и [индексы индексов должны быть целыми числами вложенных словарей python] (http://stackoverflow.com/q/17503150) –