使用python将分隔字符串列表转换为树/嵌套dict

2024-04-29 20:19:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图转换一个点分隔的字符串列表,例如

['one.two.three.four', 'one.six.seven.eight', 'five.nine.ten', 'twelve.zero']

到树中(嵌套列表或dicts-任何易于浏览的内容)。 实际数据恰好有1到4个不同长度的点分隔部分,共有2200条记录。 我的实际目标是用这些数据填充4个QComboBox的集合,就像第一个QComboBox填充第一个集合项目['one'、'five'、'12th'(没有重复项)。然后,根据所选的项,第二个QComboBox将填充其相关项:对于“one”,它将是:['two'、'six']等,如果有另一个嵌套级别。在

到目前为止,我已经有了一个工作列表->;嵌套dicts解决方案,但它的速度非常慢,因为我使用的是正则dict()。我似乎很难将其重新设计为defaultdict,以便轻松地正确地填充组合框。在

我的当前代码:

^{pr2}$

Tags: 数据字符串列表onethreefourfivetwo
1条回答
网友
1楼 · 发布于 2024-04-29 20:19:55
ls = ['one.two.three.four', 'one.six.seven.eight', 'five.nine.ten', 'twelve.zero']
tree = {}

for item in ls:
    t = tree
    for part in item.split('.'):
        t = t.setdefault(part, {})

结果:

^{pr2}$

相关问题 更多 >