您的位置:首页 > 脚本大全 > > 正文

python怎么输出一个矩阵(python实现转圈打印矩阵)

更多 时间:2022-01-17 01:12:02 类别:脚本大全 浏览量:951

python怎么输出一个矩阵

python实现转圈打印矩阵

本文实例为大家分享了python实现转圈打印矩阵的具体代码,供大家参考,具体内容如下

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • #! conding:utf-8
  • __author__ = "hotpot"
  • __date__ = "2017/10/28 9:40"
  •  
  •  
  • def return_edge(matrix, start_col, end_col, start_row, end_row):
  •   if start_row == end_row:
  •     return matrix[start_row][start_col:end_col+1]
  •   elif end_col ==start_col:
  •     res = []
  •  
  •     for i in range(start_row,end_row+1):
  •       res.append(matrix[i][end_col])
  •     return res
  •   else:
  •     res2 =[]
  •     res3 =[]
  •     res4=[]
  •     res1 = matrix[start_row][start_col:end_col+1]
  •     for i in range(start_row+1,end_row+1):
  •       res2.append(matrix[i][end_col])
  •     for i in range(end_col-1,start_col-1,-1):
  •       res3.append(matrix[end_row][i])
  •     for i in range(end_row-1,start_row,-1):
  •       res4.append(matrix[i][start_row])
  •     res1.extend(res2)
  •     res1.extend(res3)
  •     res1.extend(res4)
  •     return res1
  • def spiralOrder( matrix):
  •   if matrix:
  •     row = len(matrix)-1
  •     col = len(matrix[0])-1
  •     start_row = 0
  •     start_col = 0
  •     end_row = row
  •     end_col = col
  •     res =[]
  •     while start_col<=end_col and start_row <= end_row:
  •       res.extend(return_edge(matrix,start_col,end_col , start_row ,end_row))
  •       start_col+=1
  •       end_col-=1
  •       start_row+=1
  •       end_row-=1
  •     return res
  •   else:
  •     return matrix
  • if __name__ == '__main__':
  •   matrix = [[0 for i in range(3) ]for j in range(3)]
  •   num=1
  •   for m in range(len(matrix)):
  •     for n in range(len(matrix[0])):
  •       matrix[m][n]=num
  •       num+=1
  •  
  •   print(spiralOrder( matrix))
  • 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。

    原文链接:https://blog.csdn.net/hotpotbo/article/details/78374025

    您可能感兴趣