请给我一个解释这意味着什么(基本)

时间:2014-10-02 22:30:52

标签: python python-3.x

刚刚开始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]]

3 个答案:

答案 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