作为indata,我得到以下(CSV文件):
1;data;data;data
1.1;data;data;data
1.1.1;data;data;data
1.1.2;data;data;data
2;data;data;data
2.1;data;data;data
etc...
我尝试使用Tree数据结构:
def Tree():
return collections.defaultdict(Tree)
但问题是我想将数据存储如下:
t = Tree()
t[1][1] = [data,data,...,data]
...
t[1][1][1] = [data,data,...,data]
这不符合上面定义的数据结构。
答案 0 :(得分:0)
您不能将密钥和子项存储在单个dict条目中:
tree[1] = [myData]
tree[1][5] = [myOtherData]
在这种情况下,tree[1]
必须同时为[myData]
和{5: [MyOtherData]}
要解决此问题,您可以将数据存储为dict中的单独元素:
tree = {
1: {
'data': [myData]
5: {
'data': [myOtherData]
}
}
}
现在你可以使用:
tree[1]['data'] = [myData]
tree[1][5]['data'] = [myOtherData]
或者如果你想,你可以使用另一个魔法索引,如0
(如果0永远不会发生),但'data'
可能更清晰。