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

如何创建指定深度的多层嵌套列表?

动态生成指定深度的多层嵌套列表

要实现可指定深度、动态生成的多层嵌套列表,可以用递归或迭代的方式,替代硬编码层数的列表推导式。以下是两种实用方案:

递归实现

递归逻辑直观,根据目标深度逐层构建列表,直到抵达最内层。代码简洁易读,还能避免列表引用共享的问题。

def build_nested_list(size, depth, default_val=None):
    # 深度为1时,直接生成最内层列表
    if depth == 1:
        return [default_val for _ in range(size)]
    # 深度大于1时,生成包含size个"深度-1"嵌套列表的新列表
    return [build_nested_list(size, depth - 1, default_val) for _ in range(size)]

# 生成深度为4、每层7个元素的嵌套列表(总元素数7^4=2401)
aList = build_nested_list(7, 4)
# 示例访问:aList[1][0][2][3]

迭代实现

如果偏好非递归写法,可以从最内层列表开始,通过循环逐层向外包裹,同样支持动态控制深度:

def build_nested_list_iter(size, depth, default_val=None):
    # 初始化最内层列表
    nested = [default_val for _ in range(size)]
    # 循环depth-1次,每次在外层新增一层
    for _ in range(depth - 1):
        # 生成size个独立的当前嵌套列表副本,避免引用共享
        nested = [nested.copy() for _ in range(size)]
    return nested

# 生成目标嵌套列表
aList = build_nested_list_iter(7, 4)

关键说明

  • 两种方法都通过size参数控制每层元素数量,depth参数控制嵌套深度,完全满足动态调整需求。
  • 避免使用[nested] * size这类写法,会导致所有子列表指向同一个引用,修改其中一个会影响全部;列表推导式或copy()能保证每个子列表独立。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 10:26:02