Python矩阵索引代码解析请求:对角线元素求和逻辑疑问
代码解析与结果说明
先一步步拆解这段代码的执行逻辑:
1. 生成二维列表T
T = [[3-i for i in range (3)] for j in range (3)]
这是嵌套的列表推导式:
- 外层的
for j in range(3)会循环3次,每次生成一行数据 - 内层的
[3-i for i in range(3)]:i依次取0、1、2,计算3-i分别得到3、2、1,所以每一行都是[3,2,1]
最终生成的T结构是:
[ [3, 2, 1], [3, 2, 1], [3, 2, 1] ]
2. 计算主对角线元素的和
s = 0 for i in range(3): s += T[i][i] print(s)
这里的T[i][i]是取行索引和列索引相同的元素(也就是矩阵的主对角线元素):
- 当i=0时,取第0行第0列的元素:3
- 当i=1时,取第1行第1列的元素:2
- 当i=2时,取第2行第2列的元素:1
把这三个数相加:3+2+1=6,这就是最终输出结果6的由来。
内容的提问来源于stack exchange,提问作者Danger Coc
相关产品推荐
相关产品推荐

