PowerShell如何将分隔符字符串列表转换为缩进树形结构
点分隔路径转缩进树形结构的实现方案
核心思路非常简单,不需要手动计算字符位置截取字符串,直接按分隔符拆分层级即可:
- 逐行将字符串按
.分割为层级数组 - 缩进量由数组长度决定:单级缩进长度 *(数组长度 - 1)
- 每行仅保留数组的最后一个元素作为当前节点名称,拼接缩进后输出即可
Python 示例代码
# 输入示例 raw_list = [ "data-pool", "data-pool.house 1", "data-pool.house 1.door2", "data-pool.house 1.door3", "data-pool.house2", "data-pool.house2.door 1" ] INDENT_PER_LEVEL = 2 # 可自定义单级缩进空格数 for path_str in raw_list: level_parts = path_str.split('.') current_indent = ' ' * INDENT_PER_LEVEL * (len(level_parts) - 1) print(f"{current_indent}{level_parts[-1]}")
JavaScript 示例代码
const rawList = [ "data-pool", "data-pool.house 1", "data-pool.house 1.door2", "data-pool.house 1.door3", "data-pool.house2", "data-pool.house2.door 1" ] const indentPerLevel = 2 rawList.forEach(pathStr => { const levelParts = pathStr.split('.') const currentIndent = ' '.repeat(indentPerLevel * (levelParts.length - 1)) console.log(`${currentIndent}${levelParts.at(-1)}`) })
以上方案适配任意深度的层级结构,逻辑简洁不易出错,和原有实现性能基本一致,但代码可读性和可维护性更高。
内容的提问来源于stack exchange,提问作者lapingultah
相关产品推荐
相关产品推荐

