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

如何创建仅对角线填充数值其余元素为0的嵌套列表(矩阵)

问题原因

你现有代码的内层循环对所有列索引j都统一赋值为i**2,没有做对角线位置的判断,且期望输出的对角线首元素为1(对应1的平方),原代码从0的平方开始计算,数值不符合要求。

修正代码(保持原有循环写法)

multiarray = []
for i in range(5):
    multiarray.append([])
    for j in range(5):
        # 对角线位置满足行索引等于列索引
        if i == j:
            multiarray[i].append((i + 1) ** 2)
        else:
            multiarray[i].append(0)
print(multiarray)

更简洁的实现(基于numpy)

如果允许引入第三方库,用numpy的对角矩阵生成方法可以大幅简化代码:

import numpy as np
multiarray = np.diag([x**2 for x in range(1,6)]).tolist()
print(multiarray)

两种实现的输出都和你给出的期望结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:15:02