如何从Python嵌套字典中提取所有叶子节点值?
获取嵌套字典的叶子节点值
可以通过递归遍历的方式提取嵌套字典的叶子节点值,核心思路是判断每个值是否为字典:若是则递归处理,若否则将其加入结果列表。
实现代码
def get_leaf_values(nested_dict): leaf_values = [] for val in nested_dict.values(): if isinstance(val, dict): leaf_values.extend(get_leaf_values(val)) else: leaf_values.append(val) return leaf_values # 测试示例 nested_dict = {'a':{1:2, 4:5}, 3:{'b':{'c':'d'}}, 'e':5} print(get_leaf_values(nested_dict)) # 输出: [2, 5, 'd', 5]
逻辑说明
- 初始化空列表
leaf_values用于存储所有叶子节点值 - 遍历输入字典的每一个值:
- 若当前值是字典类型,递归调用函数处理该子字典,并将返回的叶子列表合并到主列表
- 若当前值不是字典,直接将其添加到
leaf_values中
- 遍历完成后返回收集到的所有叶子节点值
内容的提问来源于stack exchange,提问作者piccolo
相关产品推荐
相关产品推荐

