如何将斜杠分隔的路径字符串列表转换为指定结构嵌套字典
嵌套字典生成问题解决方案
你原有代码存在两个核心问题:
- 每处理完一个路径字符串后,没有将
current指针重置回根字典new,导致后续路径的创建会沿着上一个路径的最终节点继续延伸,因此产生了多余的嵌套层级 - 遍历路径的每个节点时,直接无条件将对应键赋值为空字典,会覆盖已经存在的嵌套结构,导致之前生成的层级被破坏
修改后可正常运行的代码如下:
s = ['C/A', 'C/B/A', 'C/B/B'] new = dict() for each in s: lst = each.split('/') current = new # 每次处理新路径都重置指针到根节点 for i in range(len(lst)): key = lst[i] if i != len(lst) - 1: # 非末尾节点仅在键不存在时创建字典,避免覆盖已有结构 if key not in current: current[key] = dict() current = current[key] else: # 末尾节点直接赋值目标列表 current[key] = [1,2,3] print(new)
运行后输出结果和要求的格式完全一致:{'C': {'A': [1, 2, 3], 'B': {'A': [1, 2, 3], 'B': [1, 2, 3]}}}
内容的提问来源于stack exchange,提问作者Arunakiri Venkatachalam
相关产品推荐
相关产品推荐

