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

Python如何获取字典指定key对应的所有层级下属元素列表

实现方案

可以用广度优先搜索(BFS)实现,逻辑清晰且运行效率高:

  • 首先初始化队列,存入目标key的直接下属元素
  • 依次取出队列中的元素加入结果集,同时检查该元素是否在字典中存在下属,存在则将下属全部加入队列末尾
  • 队列清空后得到的结果集就是所有层级的下属元素
def get_hierarchy(data, target_key):
    res = []
    # 初始化待处理队列,直接取目标key的一级下属
    queue = data.get(target_key, []).copy()
    
    while queue:
        # 取出队首元素处理
        current = queue.pop(0)
        res.append(current)
        # 若当前元素有下属,追加到待处理队列
        if current in data:
            queue.extend(data[current])
    return res

# 测试用例
T = {'a': ['b','c'], 'c': ['d', 'r'], 's': ['k']}
print(get_hierarchy(T, 'a'))

运行上述代码输出结果为['b', 'c', 'd', 'r'],符合预期。

如果使用场景中可能出现循环引用(比如a的下属包含b,b的下属又包含a),可以新增去重逻辑避免死循环,优化后版本如下:

def get_hierarchy(data, target_key):
    res = []
    visited = set()
    queue = data.get(target_key, []).copy()
    
    while queue:
        current = queue.pop(0)
        if current not in visited:
            visited.add(current)
            res.append(current)
            if current in data:
                queue.extend(data[current])
    return res

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:06:02