Самый вещий способ преобразования:Преобразование списка в вложенный словарь?
A = [a1, a2, a3, a4, a5]
, где «А» может быть списком с любым количеством элементов
B = {a1: {a2: {a3: {a4: {a5: y}}}}}
где у какой-либо переменной.
Самый вещий способ преобразования:Преобразование списка в вложенный словарь?
A = [a1, a2, a3, a4, a5]
, где «А» может быть списком с любым количеством элементов
B = {a1: {a2: {a3: {a4: {a5: y}}}}}
где у какой-либо переменной.
def build_dict(A, y):
for s in reversed(A):
y = {s: y}
return y
A = ['a1', 'a2', 'a3', 'a4', 'a5']
y = 'some value'
print(build_dict(A, y))
выход:
{'a1': {'a2': {'a3': {'a4': {'a5': 'some value'}}}}}
Альтернатива использованием reduce
(functools.reduce
в Python 3.x):
>>> A = ['a1', 'a2', 'a3', 'a4', 'a5']
>>> y = 'some value'
>>> reduce(lambda x, s: {s: x}, reversed(A), y)
{'a1': {'a2': {'a3': {'a4': {'a5': 'some value'}}}}}
nice, я использовал рекурсию, это выглядит намного лучше – 2014-09-08 07:25:23
@abstract, Я добавил альтернативу, которая использует 'reduce'. – falsetru
* Создание * вложенные словари или просто * * перемещения существующих индексный граф объекта? – user2864740
создание вложенного словаря – 2014-09-08 07:10:57
, но что вы подразумеваете под «простым пересечением существующего индексаемого графа объектов» – 2014-09-08 07:18:38