列表解析操作矩阵,一般情况下列表解析比map调用快,map调用比for循环快,因为map内置函数,所以列表解析比map调用快不了多少,但map调用就比for循环快很多。

 1 >>> m=[(1,2,3),
 2     (4,5,6),
 3        (7,8,9)]
 4 >>> [m[i][j] for i in range(len(m)) for j in range(len(m[1])) if i==j]
 5 [1, 5, 9]
 6 >>> [m[i][i] for i in range(len(m))]
 7 [1, 5, 9]
 8 >>> L=[]
 9 >>> for row in range(len(m[1])):
10     l=[]
11     for col in range(len(m)):
12         l.append(m[row][col]*m[row][col])
13     L.append(l)
14 
15     
16 >>> L
17 [[1, 4, 9], [16, 25, 36], [49, 64, 81]]
18 >>> [m[row][col]*m[row][col] for row in range(3) for col in range(3)]
19 [1, 4, 9, 16, 25, 36, 49, 64, 81]
20 >>> [[m[row][col]*m[row][col] for row in range(3)] for col in range(3)]
21 [[1, 16, 49], [4, 25, 64], [9, 36, 81]]

 

posted @ 2017-11-15 19:36  xiongjiawei  阅读(184)  评论(0)    收藏  举报