码迷,mamicode.com
首页 > 其他好文 > 详细

推导列表实现二维矩阵转置

时间:2019-10-03 12:38:53      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:range   span   for   推导   class   列表   二次   col   循环   

a=[[1,2,3],[4,5,6],[7,8,9]]

1    2     3

4    5     6

7    8     9

转为:

1     4    7

2    5     8

3     6    9


[ [j[i] for j in a] for i in range(3)]
i=0   j[0]--->[1,4,7]
i=1   j[1]--->[2,5,8]
i=2   j[2]--->[3,6,9]

 

for i in range(3):--->循环3次,i=0,1,2
    for j in a:---->循环3次,j=第一行,第二行,第三行
        j[i]---->第一次:1,4,7
                 第二次:2,5,8
                 第三次:3,6,9

 

>>> a=[[1,2,3],[4,5,6],[7,8,9]]
>>> [[j[i] for j in a] for i in range(3)]
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

 

 

升级练习:删除二维矩阵中的某一列。

[[i[j] for j in [1,2]]  for i in a]
 a=[[1,2,3],[4,5,6],[7,8,9]]
for i in a:--->循环三次:
               i:第一次:[1,2,3]
               i:第二次:[4,5,6]
               i:第三次:[7,8,9]

[i[j] for j in [1,2]]----->[i[1],i[2]]

>>> [[i[j] for j in range(3)]  for i in a]
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
>>> [[i[j] for j in [1,2]]  for i in a]
[[2, 3], [5, 6], [8, 9], [11, 12]]
>>> [[i[j] for j in [0,2]]  for i in a]
[[1, 3], [4, 6], [7, 9], [10, 12]]

推导列表实现二维矩阵转置

标签:range   span   for   推导   class   列表   二次   col   循环   

原文地址:https://www.cnblogs.com/wenm1128/p/11619303.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!