我有一个用户控制的依赖性下拉菜单(总共5个),用于缩小问题的具体根本原因。这些信息很容易存储在数据库中(如下所示),但是我遇到了一种问题,想出一种方法可以有效地将它存储在内存中,这样我就可以创建一组5个组合框,当父项更改时,每个后续框都会填充。我不希望在每次下拉更改后查询该表,因为它会引入明显的延迟。
我的表格如下:
RootItem1 SubItem1 SubItemA SubItemB SubItemC
RootItem1 SubItem1 SubItemA SubItemB SubItemD
RootItem1 SubItem1 SubItemA SubItemB SubItemE
RootItem1 SubItem1 SubItemA SubItemF
RootItem1 SubItem1 SubItemA SubItemF SubItemG
RootItem1 SubItem1 SubItemA SubItemF SubItemH
RootItem1 SubItem1 SubItemI SubItemJ SubItemK
RootItem1 SubItem1 SubItemI SubItemJ SubItemL
RootItem1 SubItem2
RootItem1 SubItem2 SubItemM
RootItem1 SubItem2 SubItemM SubItemN
RootItem2 SubItem3 SubItemO SubItemP
RootItem2 SubItem3 SubItemQ SubItemR
RootItem3 SubItem4 SubItemS SubItemT
RootItem3 SubItem4 SubItemU
RootItem3 SubItem4 SubItemV SubItemW SubItemX
RootItem3 SubItem5 SubItemY
RootItem3 SubItem5 SubItemY SubItemZ
重要的是要注意并非所有项目都使用所有5个子组。
我最初的想法是创建一个5D字典来存储它,然后匹配子组合框以填充该框。字典的第一部分看起来像这样:
d = {
'RootItem1': {
'SubItem1': {
'SubItemA': {
'SubItemB': ['SubItemC', 'SubItemD', 'SubItemE'],
'SubItemF': ['', 'SubItemG', 'SubItemH'],
}
'SubItemI': {
'SubItemJ': ['SubItemK', 'SubItemL']
}
},
'SubItem2': {
'': {},
'SubItemM': {
'': [],
'SubItemN': ['']
},
'SubItemO': {
'SubItemP': ['']
}
}
}
}
我的问题是,当上层没有子元素时,很难理解。有很多''
个密钥。
如何有效地生成一种方法将表格从上面存储到数据结构中我可以用来快速填充5个下拉框,每个下方的框从前一个框中获取它的值?