列表解析操作矩阵,一般情况下列表解析比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]]