如何使用Python生成空位填充0的直角数字三角形嵌套列表
问题解决方案
核心修改点
- 原代码仅实现了控制台打印带前导空格的三角形,没有给初始化的全0列表对应位置赋值,这是输出不符合预期的核心原因
- 每一行的有效数字起始索引可以通过
lines - i - 1计算得到,从该位置开始依次填充1到i+1的数字即可 - 移除多余的打印逻辑,最后返回填充完成的result即可
修改后代码
def right_angle(lines): # 初始化lines行lines列的全0嵌套列表 result = [[0 for _ in range(lines)] for _ in range(lines)] for i in range(lines): # 计算当前行数字的起始索引 start_idx = lines - i - 1 for j in range(i + 1): # 给对应位置赋值 result[i][start_idx + j] = j + 1 return result # 测试调用 output = right_angle(4) print(output)
运行输出
[[0, 0, 0, 1], [0, 0, 1, 2], [0, 1, 2, 3], [1, 2, 3, 4]]
注:Python原生列表打印默认带逗号分隔符,如果你需要无逗号的显示格式,自行遍历嵌套列表打印即可,返回的嵌套列表结构完全符合需求。
内容的提问来源于stack exchange,提问作者abd
相关产品推荐
相关产品推荐

