You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:从嵌套结构扁平列表生成按字母排序的索引

解决方案

核心思路

可以用字典树(Trie)+递归遍历的方式解决,步骤清晰且通用,完全支持无序输入、任意层级词汇的场景:

  1. 把所有路径拆解成层级,构建一棵嵌套字典树,每个节点的子节点用字典存储;
  2. 对字典树每一层的子节点按字母排序,保证编号顺序符合要求;
  3. 递归遍历字典树,给每个路径分配对应的层级编号,并存入映射表;
  4. 最后根据原输入列表,从映射表中取出每个路径对应的编号,得到结果。

具体实现(Python)

def build_trie(paths):
    trie = {}
    for path in paths:
        nodes = path.split('/')
        current = trie
        for node in nodes:
            if node not in current:
                current[node] = {}
            current = current[node]
    return trie

def sort_trie(trie):
    # 递归排序每一层的子节点
    for key in trie:
        sort_trie(trie[key])
    # 按字母顺序重新排列子节点
    sorted_keys = sorted(trie.keys())
    return {key: trie[key] for key in sorted_keys}

def generate_number_map(trie, prefix='', number_map=None):
    if number_map is None:
        number_map = {}
    # 处理当前层级的节点
    for idx, key in enumerate(trie.keys(), 1):
        current_number = f"{prefix}.{idx}" if prefix else str(idx)
        # 拼接当前路径
        current_path = f"{prefix.replace('.', '/')}/{key}" if prefix else key
        number_map[current_path] = current_number
        # 递归处理子节点
        generate_number_map(trie[key], current_number, number_map)
    return number_map

def path_to_index(paths):
    # 构建字典树
    trie = build_trie(paths)
    # 排序字典树各层级
    sorted_trie = sort_trie(trie)
    # 生成路径到编号的映射
    num_map = generate_number_map(sorted_trie)
    # 按原输入顺序返回对应的编号
    return [num_map[path] for path in paths]

# 测试示例
input_paths = ['a','a/b','a/b/a','a/c','a/c/a','b']
output = path_to_index(input_paths)
print(output)  # 输出: ['1', '1.1', '1.1.1', '1.2', '1.2.1', '2']

关键点说明

  • 字典树构建:不管输入路径是否有序,都能完整记录所有层级结构,不会遗漏任何节点;
  • 层级排序:递归对每个节点的子节点按字母排序,确保编号是按字母顺序分配的;
  • 递归生成编号:遍历过程中记录当前层级的编号前缀,子节点编号在前缀基础上追加序号,自然形成1.1、1.1.1这类层级编号;
  • 映射表匹配:最后直接通过映射表快速查找原输入路径对应的编号,保证输出顺序和原输入一致。

适配任意场景的特性

  • 支持无序输入:不管原列表的路径顺序如何,字典树都会完整构建,排序后生成正确编号;
  • 支持任意词汇层级:只要路径用/分隔,不管层级是字母、数字还是其他字符串,都能正确处理;
  • 支持任意深度层级:递归逻辑可以处理无限嵌套的路径结构。

内容的提问来源于stack exchange,提问作者Kspr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 12:10:25