求助:如何用Python实现生成递增序列矩阵的函数
问题解决建议
你的代码存在两个核心问题:
- 内层循环范围错误:每个子列表的长度应与它的位置对应(第1个子列表长度1,第2个长度2……),但当前内层循环始终遍历到
n,导致所有子列表长度都是n - 元素起始值错误:需求是从1开始的递增序列,但你直接添加
j,而range(0,n)生成的是从0开始的数值
简化修正版代码
def matrixIncrease(n): lst = [] for i in range(n): # 直接生成1到i+1的递增序列 sub_list = list(range(1, i + 2)) lst.append(sub_list) return lst print(matrixIncrease(3)) # 输出 [[1], [1, 2], [1, 2, 3]]
保持嵌套循环结构的修正版
如果你想保留原有的嵌套循环写法,可以这样改:
def matrixIncrease(n): lst = [] for i in range(n): sub_list = [] # 内层循环只生成i+1个元素,且从1开始 for j in range(1, i + 2): sub_list.append(j) lst.append(sub_list) return lst
关键说明
range(1, i+2):Python的range是左闭右开区间,要生成1到i+1的整数,结束值需要设为i+2- 外层循环的
i控制子列表的数量和每个子列表的长度:当i=0时生成[1],i=1时生成[1,2],完全匹配需求的输出格式
内容的提问来源于stack exchange,提问作者boldercoder
相关产品推荐
相关产品推荐

