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

如何将循环嵌套列表打印为指定格式的p*p矩阵?

问题分析与修复代码

原代码存在两个关键问题:

  • 内层循环中,你直接用l1[i] = [j,i]覆盖了外层循环创建的空列表,导致每个子列表最终只保留最后一个[j,i]元素,而不是积累所有元素。
  • 示例中的矩阵行是倒序的(比如输入4时,第一行是[3,0],[3,1]...),但原代码的i是从0到a-1递增,需要改为从a-1到0递减。

修改后的代码

方式1:修正原循环逻辑

a = int(input())
l1 = []

# 倒序遍历i,从a-1到0
for i in range(a-1, -1, -1):
    row = []
    for j in range(a):
        # 向当前行添加元素[i, j]
        row.append([i, j])
    l1.append(row)

print(l1)

方式2:更简洁的列表推导式

如果想简化代码,可以用嵌套列表推导式一行搞定:

a = int(input())
l1 = [[[i, j] for j in range(a)] for i in range(a-1, -1, -1)]
print(l1)

测试示例

当输入4时,输出结果为:

[[[3, 0], [3, 1], [3, 2], [3, 3]], [[2, 0], [2, 1], [2, 2], [2, 3]], [[1, 0], [1, 1], [1, 2], [1, 3]], [[0, 0], [0, 1], [0, 2], [0, 3]]]

和你给出的示例格式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:35:22