对一个n✘n二维列表形成的矩阵最外层进行顺时针或逆时针旋转一位,还有怎么去除最外层的问题
去除最外层
li = [
[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9,10,11,12],
[13,14,15,16]
]
li.pop(0)
li.pop()
for v in li:
v.pop(0)
v.pop()
print(*li,sep='\n')
顺时针旋转一位
n = 4
li = [
[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9,10,11,12],
[13,14,15,16]
]
p = [(0,i) for i in range(3)]+[(i,n-1) for i in range(3)]+[(n-1,n-1-i) for i in range(3)]+[(n-1-i,0) for i in range(3)]
t = li[p[-1][0]][p[-1][1]]
for i in range(len(p)-1,0,-1):
li[p[i][0]][p[i][1]] = li[p[i-1][0]][p[i-1][1]]
li[p[0][0]][p[0][1]] = t
print(*li,sep='\n')
逆时针旋转一位
n = 4
li = [
[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9,10,11,12],
[13,14,15,16]
]
p = [(0,i) for i in range(3)]+[(i,n-1) for i in range(3)]+[(n-1,n-1-i) for i in range(3)]+[(n-1-i,0) for i in range(3)]
t = li[p[0][0]][p[0][1]]
for i in range(len(p)-1):
li[p[i][0]][p[i][1]] = li[p[i+1][0]][p[i+1][1]]
li[p[-1][0]][p[-1][1]] = t
print(*li,sep='\n')
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m