翻转矩阵

输入格式

输入第一行包括由空格分开的整数 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. 然后创建对应的矩阵
  3. 将给出的值正确的写入到矩阵里
  4. 根据要求翻转矩阵
  5. 按要求输出矩阵

下面直接贴出代码:

 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("")

原文地址:https://www.cnblogs.com/tingshuo123/p/6650880.html