翻转矩阵
输入格式
输入第一行包括由空格分开的整数 M,N,T(0 < N,M < 200)M,N,T(0<N,M<200),TT 的值为 00 或 11。其中 MM 和 NN 分别表示待处理矩阵的行数与列数,TT 为 00 时表示左右翻转,为 11 时表示上下翻转。
之后的 MM 行,每行包括由空格分隔的 NN 个整数,依次为输入矩阵的每一行的数据。
输出格式
输出包括 MM 行 NN 列,每个数字之间用一个空格分隔,每一行行末均有一个空格,表示的是按照要求翻转后的矩阵。
样例输入
4 4 1 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
样例输出
3 4 5 6 9 0 1 2 5 6 7 8 1 2 3 4
这是在计蒜客上看到的题目,在网上看了一些别人的解题思路,分为以下几个步骤:
- 先是要读取矩阵的行列,还有翻转方向
- 然后创建对应的矩阵
- 将给出的值正确的写入到矩阵里
- 根据要求翻转矩阵
- 按要求输出矩阵
下面直接贴出代码:
1 # 读取矩阵行列 翻转方向 2 info = input() 3 row = int(info.split(" ")[0]) # 行 4 line = int(info.split(" ")[1]) 5 direction = int(info.split(" ")[2]) 6 7 # 创建对应行列矩阵 8 matrix = [[0]*line for i in range(row)] 9 10 # 读取矩阵内容 11 12 for r in range(row): 13 read_row = input() 14 read_row = read_row.split(" ") 15 for l in range(line): 16 matrix[r][l] = int(read_row[l]) 17 18 19 # 根据要求翻转矩阵 20 if direction == 1: 21 matrix.reverse() 22 else: 23 [i.reverse() for i in matrix] 24 25 # 打印矩阵 26 for i in matrix: 27 for t in i: 28 print(t, end=" ") 29 print("")