我想减少访问数据库检索数据的次数。所以我认为将整个数据放入树中会提高系统的性能,因为我不会频繁访问数据库。
我是Python的初学者,所以请在创建树结构时为我提供帮助和建议。
最佳答案
您可以使用嵌套 dictionaries 。嵌套意味着键:值对的值可以是另一个字典。
<小时/> JerseyMike给出了一个很好的例子,我只是想指出他的addItemAttributes函数相当于更简洁的def addItemAttributes(tree, idList):
(menu, cat, subcat, item, attribs) = idList;
currDict = tree.setdefault(menu, {})\
.setdefault(cat, {})\
.setdefault(subcat, {})\
.setdefault(item, {})
for a in attribs:
currDict[a[0]] = a[1]
...并且您可能希望将 getItemAttributes 包装在 try block 中,以便可以处理其中一个键丢失的情况,例如。
try:
getItemAttributes(...)
except KeyError:
#key was incorrect, deal with the situation
关于python - python中5级树结构的构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9889651/