👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。
一、问题描述
求一个矩阵的转置
示例1:
输入:[[1, 2, 3], [4, 5, 6]]
输出:[[1, 4], [2, 5], [3, 6]]
分析:
输入矩阵的形式为:
1 2 3
4 5 6
矩阵的转置为:
1 4
2 5
3 6
二、代码实现
代码如下(示例):
def trans_metrix(arr): # 获取原矩阵的行数和列数 row = len(arr) # 原矩阵的行数 col = len(arr[0]) # 原矩阵的列数 # 初始化一个空列表用于存放转置后的矩阵 last_arr = [] # 进行矩阵转置 for i in range(col): # 初始化一个新的列表用于存放转置后的当前列 new_arr = [] for j in range(row): # 获取原矩阵第j行第i列元素,并将其添加到新的列表中 new_arr.append(arr[j][i]) # 将转置后的当前列添加到结果矩阵中 last_arr.append(new_arr) return last_arr arr = [[1, 2, 3], [4, 5, 6]] print(trans_metrix(arr))
三、代码说明
- 函数定义:代码定义了一个名为
trans_metrix
的函数,该函数接收一个二维列表arr
作为输入参数,并返回一个转置后的二维列表last_arr
。 - 获取矩阵的行数和列数:通过
len(arr)
和len(arr[0])
分别获取原矩阵arr
的行数row
和列数col
。 - 初始化空列表:创建一个空列表
last_arr
,用于存放转置后的矩阵。 - 进行矩阵转置:使用两层嵌套循环,首先外层循环变量
i
从 0 到col-1
,内层循环变量j
从 0 到row-1
,遍历原矩阵的每个元素。 - 转置过程:在内层循环中,通过
arr[j][i]
获取原矩阵中第j
行第i
列的元素,并将其添加到一个新的列表new_arr
中。 - 更新转置矩阵:在每次内层循环完成后,将
new_arr
添加到结果矩阵last_arr
中,这样,last_arr
中的每一项都是原矩阵arr
的列,从而完成了矩阵的转置。 - 返回结果:返回转置后的矩阵
last_arr
。 - 测试代码:调用
trans_metrix
函数,传入二维列表arr
,并打印返回的转置后的结果。
总体来说,这段代码实现了矩阵的转置功能,通过两层嵌套循环遍历原矩阵的元素,并将其按转置规则存放到新的列表中,最后返回转置后的结果。在测试代码中,输入矩阵 arr
是[[1, 2, 3], [4, 5, 6]]
,输出结果是[[1, 4], [2, 5], [3, 6]]
,符合矩阵转置的预期结果。