如何利用Python实现n*n螺旋矩阵
目录
- 实现代码:
- 运行结果:
- 附:python 简单实现螺旋矩阵
- 总结
1 2 3
8 9 4
7 65
实现代码:
def spiral(n):matrix = [[0] * n for _ in range(n)]# 顺时针方向(右,下,左,上)dx = [0, 1, 0, -1]dy = [1, 0, -1, 0]x = y = 0dn = 0# 方向指针0;向右填充,1:向下填充,2:向上填充,3:向上填充 for i in range(1, n * n + 1):# 从1开始赋值,一直到n*nmatrix[x][y] = itemp_x = x + dx[dn]temp_y = y + dy[dn]if 0 <= temp_x < n and 0 <= temp_y < n and matrix[temp_x][temp_y] == 0:x = temp_xy = temp_yelse:dn = (dn + 1) % 4x += dx[dn]y += dy[dn] return matrix if __name__ == '__main__':n = int(input("输入矩阵n值:"))matrix = spiral(n)for i in range(n):print(matrix[i])
运行结果: 【如何利用Python实现n*n螺旋矩阵】
文章图片
附:python 简单实现螺旋矩阵
创建一个大小为m * n的矩阵,并以螺旋方式遍历它。在遍历时,我们跟踪变量“ val”以填充下一个值,我们将“ val”一个接一个地递增,并将其值放入矩阵中。以下是简单实现:def spiral_matrix(m,n):''':param x: colunm index:param y: row index'''a = [[0 for _ in range(m)] for _ in range(n)]val = 1x,y = 0,0count = m*nwhile val <= count:for i in range(x, m):a[x][i] = valval += 1x += 1for i in range(y+1, n):a[i][m-1] = valval += 1y += 1 if x < m:for i in range(m-2, x-2, -1):a[n-1][i] = valval += 1m -= 1 if y < n:for i in range(n-2, y-1, -1):a[i][y-1] = valval += 1n -= 1for i in a:print(*i) spiral_matrix(6,6)# 1 2 3 4 5 6# 20 21 22 23 24 7# 19 32 33 34 25 8# 18 31 36 35 26 9# 17 30 29 28 27 10# 16 15 14 13 12 11
总结 到此这篇关于如何利用Python实现n*n螺旋矩阵的文章就介绍到这了,更多相关Python实现n*n螺旋矩阵内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 如何利用C语言输出3D立体感心形图详解
- 【Python 技巧】itertools.permutations()
- 【Python 技巧】Lambda 函数
- 【Python 技巧】何时使用 __repr__ 与 __str__()
- 一文教你MySQL如何优化无索引的join
- 关于python中不同函数读取图片格式的区别浅析
- MySQL如何快速创建800w条测试数据表
- python解题软件哪个好用_效率倍增!5款超级好用的Python工具库!
- 用python七巧板模型拼图形_python之“七巧板”
- python编程实现撤销上一步操作_78行Python代码实现现微信撤回消息功能