Я долгое время боролся с этим и нуждался в некоторой помощи, у меня есть какие-то петли, которые ищут что-то и динамически создают для них словарь, например i я просматриваю магазин, затем все ведра, а затем фрукты внутри этих ведер.динамически создает defaultdict (list) внутри другого defaultdict (tree)
from collections import defaultdict
def tree(): return defaultdict(tree)
test = tree()
test[Store][bucket][fruits] = defaultdict(list)
test[Store][bucket][fruits].append(1)
print test
"""
desired output
{
'Store':{
'bucket1':{
'fruits':['banana', 'mango', 'apple']
}
},
'bucket2':{
'fruits':['banana', 'mango', 'apple']
}
}
}
"""
этот подход выдает сообщение об ошибке и не работают, и я пробовал много других подходов, как создания различных словарей, а затем объединять их, или создать список, а затем искать или найти и бла-бла .. но я хотел бы чтобы узнать, как я могу объединить объекты defaultdict внутри друг друга. Может кто-то, пожалуйста, помогите мне с этим.
Спасибо.
Это может быть лучше взять глубину в качестве параметра для функции фабрики вместо возвращения 'defaultdict (TREE)' , – user2357112
'def tree (depth): return defaultdict (list if depth == 1 else lambda: tree (depth-1))' – user2357112