defreverse_on_diagonals(matrix):
copy =[ line[:]for line in matrix ]for i inrange(len(matrix)):
copy[i][i]= matrix[-1-i][-1-i]
copy[i][-1-i]= matrix[-1-i][i]return copy
答案2:
defreverse_on_diagonals(matrix):
l =len(matrix)for i inrange(l //2):
j = l - i -1
matrix[i][i], matrix[j][j]= matrix[j][j], matrix[i][i]
matrix[i][j], matrix[j][i]= matrix[j][i], matrix[i][j]return matrix
答案3:
defreverse_on_diagonals(mx):
dl =[]
dr =[]for i inrange(len(mx)):
dl.append(mx[i][i])
dr.append(mx[i][-i-1])for i inrange(len(mx)):
mx[i][i]= dl.pop()
mx[i][-i-1]= dr.pop()return mx
答案4:
r=reversed;x=enumerate;reverse_on_diagonals=lambda m:[[f if i==j orlen(m[i])-(i+j+1)==0else m[i][j]for j,f in x(e)]for i,e in x([list(r(e))for e in r(m)])]
defreverse_on_diagonals(matrix):
size =len(matrix)for i inrange(size //2):
matrix[i][i], matrix[size - i -1][size - i -1]= matrix[size - i -1][size - i -1], matrix[i][i]
matrix[i][size - i -1], matrix[size - i -1][i]= matrix[size - i -1][i], matrix[i][size - i -1]return matrix
答案10:
defreverse_on_diagonals(matrix):
size =len(matrix)return[[matrix[size-j-1][size-i-1]if i == j or i == size-j-1else x for i, x inenumerate(row)]for j, row inenumerate(matrix)]