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

Python如何实现生成指定嵌套层数r、每层含m个元素的嵌套列表

实现方案

核心思路

你要实现的是r层m叉的嵌套空列表结构,两种最常用的实现方式如下:

  • 递归实现:利用递归的终止条件逐层向内生成结构,代码简洁易读,适合r不超过Python默认递归深度(默认1000)的场景
  • 迭代实现:从最内层结构向外逐层包裹,没有递归深度限制,适合r极大的场景

代码示例

递归版本

def generate_nested(r: int, m: int) -> list:
    # 终止条件:嵌套层数只剩1层时,直接返回m个空列表组成的列表
    if r == 1:
        return [[] for _ in range(m)]
    # 每层由m个r-1层的嵌套结构组成
    return [generate_nested(r-1, m) for _ in range(m)]

测试效果:

print(generate_nested(1, 3))
# 输出:[[], [], []]
print(generate_nested(2, 3))
# 输出:[[[], [], []], [[], [], []], [[], [], []]]

迭代版本

def generate_nested_iter(r: int, m: int) -> list:
    # 初始化最内层结构
    current = [[] for _ in range(m)]
    # 向外逐层包裹,共需要包裹r-1次
    for _ in range(r-1):
        current = [current.copy() for _ in range(m)]
    return current

注意事项

不要使用[[]] * m的写法生成子列表,该写法会让所有子列表指向同一个内存地址,修改任意一个子列表都会同步影响其他所有子列表,必须用列表推导式生成独立的子列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:57:03