刚刚开始python,这本书告诉我如果我使用下面的代码,我可以创建一个这个矩阵对角线,有人请解释一下这意味着什么? for i in,Matrix [i] [i]以及为什么它是[0,1,2] 提前谢谢。
Matrix = [[1,2,3,4],
[5,6,7,8],
[9,10,11,12]]
Diagonal = [Matrix[i][i] for i in [0, 1, 2]]
答案 0 :(得分:0)
[Matrix[i][i] for i in [0, 1, 2]]
被称为“列表理解”,它很棒,你应该尽快学习它。 (它对列表中的每个项执行某些操作,然后将结果作为列表返回)
总体而言,这意味着for i
- “i”是我们作为临时持有人使用的变量。
in [0,1,2]
- 这些是“i”每次迭代时的含义
Matrix[i][i]
- 每次访问Matrix [i] [i]并将其打成一个列表。
此列表已分配到Diagonal
没有列表理解它等同于:
Diagonal = []
for i in [0,1,2]:
Diagonal.append(Matrix[i][i])
答案 1 :(得分:0)
第一项作业
Matrix = [[1,2,3,4],
[5,6,7,8],
[9,10,11,12]]
将变量Matrix
设置为3个元素的列表,其中这3个元素中的每一个都是4个数字的列表。 Matrix[0]
保留列表[1,2,3,4]
,Matrix[1]
保留[5,6,7,8]
,Matrix[2]
保留[9,10,11,12]
。
第二项任务:
Diagonal = [Matrix[i][i] for i in [0, 1, 2]]
将变量Diagonal
设置为Matrix
内的特定数字列表。 Diagonal
中的每个项都来自Matrix
中的位置,其中行索引和列索引相同(因为i
正用于两个索引)。 i
本身正在运行值0,1,2,因此Diagonal
最终为[Matrix[0][0], Matrix[1][1], Matrix[2][2]
,即[1, 6, 11]
。 0
是第一行和第一列的索引,1
是第二行和第二列的索引,2
是第三行和第三列的索引
答案 2 :(得分:-1)
[0, 1, 2]
用作索引列表。
由于Matrix是一个多维数组,因此您可以使用行和列:
您在第一次迭代row 0 column 0
-> [1,2,3,4] = 1
您在第二次迭代row 1 column 1
-> [5,6,7,8] = 6
您在第三次迭代row 2 column 2
-> [9,10,11,12] = 1