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

Python如何使用for循环生成形如[a][b][c]的嵌套列表用于字典取值?

你之前用append得到的是按顺序存放key的列表,仅完成了key的收集,没有实现逐层访问字典的逻辑,所以无法得到[a][b][c]形式的嵌套取值效果。你需要的[a][b][c]格式本质是嵌套字典的连续按key取值,可通过以下两种方式完成对应逻辑:

实现方法

方法1:循环遍历取值

先修正原有代码的语法问题(Python函数定义关键字为小写def,不建议使用大写开头的变量名),修改后逻辑如下:

def get_nested_value(target_dict, key_list):
    # 初始化当前取值层级为顶层字典
    current_level = target_dict
    for key in key_list:
        # 逐层进入下一级字典
        current_level = current_level[key]
    return current_level

方法2:用reduce简化写法

可以借用functools.reduce和operator.getitem简化代码:

from functools import reduce
import operator

def get_nested_value(target_dict, key_list):
    return reduce(operator.getitem, key_list, target_dict)

使用示例

# 测试用嵌套字典
my_dict = {
    "a": {
        "b": {
            "c": "目标取值结果"
        }
    }
}
# 按顺序存放key的列表
key_list = ["a", "b", "c"]
# 调用方法取值,等价于 my_dict["a"]["b"]["c"]
print(get_nested_value(my_dict, key_list))

运行后输出:目标取值结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:24:04