code:对矩阵进行转置
matrix = [ [1, 2, 3, 4], [5, 6, 7, 8],[9, 10, 11, 12] ]
transposed = [[row[i] for row in matrix] for i in range(4)]
列表解析先从外层开始,即
for i in range(4)
i
首先取0,再到内层
[row[i] for row in matrix]
row
取得的第一个元素是[1, 2, 3, 4]
, row[0]
则是1; 第二个元素是[5, 6, 7, 8]
, row[0]
是5;以此类推…可以得知i = 0
时,内层列表解析为[1, 5, 9]
, 这也是列表transposed
的第一个元素,之后会以类似的方式得到transposed其他元素。最后得到matrix
的转置矩阵。