方法一 :运用常规思路
deftranspose(M): #转移后的矩阵初始化 result=[] #在转移前获取行和列 row,col=shape(M) #首先循环列 foriinrange(col): #外循环容器 item=[] #循环在列循环的内部进行 forindexinrange(row): item.append(M[index][i]) result.append(item) returnresult
思路:矩阵的转移是从行到列,列到行。
首先定义最终存储矩阵的容器;
首先对列进行循环i,并定义一个存储数据的临时数组,在每个列的循环内再次对行进行循环j[j][i]一个元素存储在临时数组中;
临时数组在每列循环完成后存储在最终数组中;
当列循环完成后,最终数组是矩阵的转移。
方法二:使用zip解包
deftranspose(M): #直接将zip解包成转换后的元组迭代器,然后将其强制转换为列表并存储在最终列表中 return[list(row)forrowinzip(*M)]
思路:
zip 解包后,返回一个迭代器,将多个可迭代对象组合成一个元组序列,如:
my_zip=list(zip(['a','b','c'],[1,2,3])) print(my_zip)#[('a',1),('b',2),('c',3)]
将元组强转化为list,并在每个循环中存储在总list中。
python学习网,免费在线学习python平台,欢迎关注!