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

Python实现子列表长度逐增的金字塔嵌套列表作业问题求助

问题分析与代码修复

现有代码的问题

  • 仅声明了一个全局列表list1,所有生成的1都直接追加到该列表中,没有按行生成独立的子列表,最终得到的是一维扁平列表,不符合要求的嵌套结构。
  • print语句放在循环内部,只会打印每一步的中间执行结果,无法输出最终的完整嵌套列表。

你提到的逻辑和绘制三角形右侧逻辑类似是正确的,该需求本质就是逐行生成对应长度的全1列表,再将所有子列表汇总为总列表即可。

正确实现

基于你的while逻辑修改版本

def pyramid(x):
    # 总嵌套列表,存储所有行的子列表
    result = []
    line = 0
    while line < x:
        # 每次循环先初始化当前行的子列表
        current_line = []
        # 当前行需要生成 line+1 个1
        num_count = line + 1
        while num_count > 0:
            current_line.append(1)
            num_count -= 1
        # 将当前行子列表加入总列表
        result.append(current_line)
        line += 1
    return result

更简洁的列表推导式版本

利用Python列表乘法特性可以大幅简化代码:

def pyramid(x):
    # 遍历1到x,每次生成对应长度的全1子列表
    return [[1] * i for i in range(1, x + 1)]

测试验证

print(pyramid(0))  # 输出 []
print(pyramid(1))  # 输出 [[1]]
print(pyramid(2))  # 输出 [[1], [1, 1]]
print(pyramid(3))  # 输出 [[1], [1, 1], [1, 1, 1]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:36:05