Python如何生成元素数量逐层递增的三层嵌套列表
问题根因
原代码的内层列表生成逻辑写死了循环长度为1,不管外层遍历到第几个子列表,都只会生成1个[0,0]元素,因此输出的所有中间层子列表长度都为1,不符合预期规则。
正确实现代码
n = 2 test = [[[0, 0] for _ in range(k + 1)] for k in range(n)] print(test)
效果验证
- 当
n=2时,运行输出为[[[0, 0]], [[0, 0], [0, 0]]],匹配要求 - 当
n=3时,运行输出为[[[0, 0]], [[0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0]]],匹配要求
逻辑说明
三层嵌套列表的生成逻辑从外到内对应:
- 最外层列表:长度由参数n决定,共包含n个中间层子列表
- 中间层子列表:按顺序第1个子列表长度为1、第2个长度为2……第m个长度为m,由于外层循环变量k从0开始取值,因此内层生成元素的循环范围设为
range(k+1)即可匹配长度要求 - 最内层元素:固定为
[0,0],直接按原逻辑生成即可
内容的提问来源于stack exchange,提问作者Rapine
相关产品推荐
相关产品推荐

