Python 矩阵逆时针旋转

Python 矩阵逆时针旋转,python,python-3.x,Python,Python 3.x,我试图解决一个问题,我找不到任何错误,如果可能的话你可以给出提示,因为我想自己解决,我想我不理解python中的可变对象,问题是,我的解决方案是: #!/bin/python3 import math import os import random import re import sys # # Complete the 'matrixRotation' function below. # # The function accepts following parameters: # 1.

我试图解决一个问题,我找不到任何错误,如果可能的话你可以给出提示,因为我想自己解决,我想我不理解python中的可变对象,问题是,我的解决方案是:

#!/bin/python3

import math
import os
import random
import re
import sys

#
# Complete the 'matrixRotation' function below.
#
# The function accepts following parameters:
#  1. 2D_INTEGER_ARRAY matrix
#  2. INTEGER r
#

def custom(m,n,new_matrix,matrix):
    for k in range(0,int(m/2)):
            first_row = k
            last_row = m - k - 1
            for j in range(k,n-k):
                 if (j<n-k-1):
                    new_matrix[first_row][j] = matrix[first_row][j+1]
                 if (j>k):
                    new_matrix[last_row][j] = matrix[last_row][j-1]
            
            for i in range(k,m-k):
                if(i<m-k-1):
                    new_matrix[i][n-k-1] = matrix[i+1][n-k-1]
                if(i>k):
                    new_matrix[i][k] = matrix[i-1][k]

    return new_matrix

def matrixRotation(matrix, r):
    # Write your code here
    m = len(matrix);
    n = len(matrix[0])

    
    for l in range(r):
        new_matrix = [ [0] * n for _ in range(m)]
        matrix = custom(m,n,new_matrix,matrix)
    for row in matrix:
         print(*row)
      
            
                
            
            
            

if __name__ == '__main__':
    first_multiple_input = input().rstrip().split()

    m = int(first_multiple_input[0])

    n = int(first_multiple_input[1])

    r = int(first_multiple_input[2])

    matrix = []


    for _ in range(m):
        matrix.append(list(map(int, input().rstrip().split())))

    matrixRotation(matrix, r)
#/垃圾桶/蟒蛇3
输入数学
导入操作系统
随机输入
进口稀土
导入系统
#
#完成下面的“矩阵旋转”功能。
#
#该函数接受以下参数:
#  1. 二维整数数组矩阵
#  2. 整数r
#
def自定义(m、n、新矩阵、矩阵):
对于范围(0,int(m/2))内的k:
第一行=k
最后一行=m-k-1
对于范围(k,n-k)内的j:
如果(jk):
新矩阵[最后一行][j]=矩阵[最后一行][j-1]
对于范围内的i(k,m-k):
如果(ik):
新矩阵[i][k]=矩阵[i-1][k]
返回新的矩阵
def矩阵旋转(矩阵,r):
#在这里编写代码
m=len(矩阵);
n=len(矩阵[0])
对于范围(r)中的l:
新的_矩阵=[[0]*n表示u在范围内(m)]
矩阵=自定义(m,n,新矩阵,矩阵)
对于矩阵中的行:
打印(*行)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
第一个\u多个\u输入=输入().rstrip().split()
m=int(第一个多个输入[0])
n=int(第一个多个输入[1])
r=int(第一个多个输入[2])
矩阵=[]
对于范围内的u(m):
追加(列表(映射(int,input().rstrip().split()))
矩阵旋转(矩阵,r)
我找不到错误,
new\u matrix[first\u row][j]=matrix[first\u row][j+1]
在python中是否不能正常工作


我写这篇文章作为备选方案,因为我试图优化这个解决方案,它给我35.56分并通过8/13个测试用例

如果你想回答你的问题而看不到产生问题的任何数据,我可以在每一步解释我的代码。请阅读Jon Skeet的优秀博客文章,以获得更新问题的指导。有关提问的更详细教程,请参见Eric S.Raymond的网站@itprorh66没有一个网站是足够的,没有时间访问两个网站也请参见此