题解 | 矩阵转置
矩阵转置
https://www.nowcoder.com/practice/7a8b443abda641bba5f70e0b4ebd8161
from typing import List, Union
# 使用 Union 来表示类型可以是 int 或 float
def transpose_matrix(a: List[List[Union[int, float]]]) -> List[List[Union[int, float]]]:
output_matrix = [[0 for _ in range(len(a))] for _ in range(len(a[0]))]
for i in range(len(a)): # 遍历行
for j in range(len(a[0])): # 遍历列
output_matrix[j][i] = a[i][j] # 转置操作
return output_matrix
# 处理输入输出
def main():
try:
matrix_str = input().strip()
# 去掉最外层的方括号,并分割每个子数组
rows = matrix_str[2:-2].split("],[")
# 将每个子数组转换为数字列表
matrix = [list(map(int, row.split(","))) for row in rows]
# 计算转置矩阵
result = transpose_matrix(matrix)
# 格式化输出
print(str(result).replace(" ", ""))
except Exception as e:
print(f"输入格式错误: {e}")
if __name__ == "__main__":
main()
def transpose_matrix(a: List[List[Union[int, float]]]) -> List[List[Union[int, float]]]:
return [list(i) for i in zip(*a)]
def transpose_matrix(a: List[List[Union[int, float]]]) -> List[List[Union[int, float]]]:
import numpy as np
return np.array(a).T.tolist()

查看10道真题和解析