def rotate2(matrix):
length = len(matrix)
for i in range(length):
for j in range(i+1, length):
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
for p in range(len(matrix)):
matrix[p] = matrix[p][::-1]
rotate2(matrix)
print(matrix)
def rotate3(matrix):
tR = 0
tC = 0
dR = len(matrix)-1
dC = len(matrix[0])-1
while tR<dR:
rotateEdge(matrix, tR, tC, dR, dC)
tR += 1
tC += 1
dR -= 1
dC -= 1
def rotateEdge(m, tR, tC, dR, dC):
times = dC-tC
tmp = 0
for i in range(times):
tmp = m[tR][tC+i]
m[tR][tC+i]=m[dR-i][tC]
m[dR-i][tC]=m[dR][dC-i]
m[dR][dC-i]=m[tR+i][dC]
m[tR+i][dC]=tmp
rotate3(matrix)
print(matrix)