螺旋矩阵功能

时间:2019-05-05 23:18:31

标签: python python-3.x

我正在解决一个锻炼程序。我想编写一个接受整数(例如i)并返回i*i螺旋矩阵的函数。

例如:

如果我是2,它应该返回:

[[1, 2],
[4, 3]]

如果我3岁,它应该返回:

[[1, 2, 3],
[8, 9, 4],
[7, 6, 5]]

如果我4岁,应该返回:

[[1, 2, 3, 4],
[12, 13, 14, 5],
[11, 16, 15, 6],
[10, 9, 8, 7]]

以此类推。

我的解决方案:

print([[x+1 for x in range(x,input+x)] if x %2==0 else [x+1 for x in range(x,input+x)][::-1] for x in range(0, input*input, input)])

但是它不能给我正确的输出。

此外,我觉得它有点肿且效率低下。有没有更有效的方法?如果是这样,您能帮我吗?

0 个答案:

没有答案