给定一些矩阵,我需要镜像矩阵中的所有行.例如
[[2, 1], [4, 3]]
会成为
[[1, 2], [3, 4]]
我设法做了(2 x 2)-case.但我在镜像这样的事情时遇到了麻烦:
[[1, 2, 3, 4], [1, 2, 3, 4]]
这必须成为
[[4, 3, 2, 1], [4, 3, 2, 1]]
我想用循环/递归来做这个.如果我使用递归,我可能会有基本步骤,首先交换最内层元素,然后从这里开始,我们将通过包括外部元素并交换它们来使矩阵更大.但是,我在递归步骤时遇到了麻烦.交换了最内层的元素之后,我想在矩阵中包含下一个最内层元素,并交换它们,然后像这样继续直到我们到达外部元素.如何在代码中实现?这是我到目前为止所做的:
matrix = [[1, 2, 3, 4], [1, 2, 3, 4]] def mirror(matrix): # This corresponds to the basic step. The two inner most elements get swapped. if len(matrix) == 2: for i in range(len(matrix)): for j in range(len(matrix)): # Store one element in a temporal variable temp = matrix[i][j] matrix[i][j] = matrix[i][len(matrix) - 1] matrix[i][len(matrix)-1] = temp return matrix else: # Recursion step for i in range(len(matrix)): for j in range(len(matrix)): return (matrix + mirror(matrix[(len(matrix) // 2) - 1 : len(matrix)]))
我认为递归步骤是错误的.我尝试使用切片运算符,但我不确定应该如何正确完成.任何有关此问题的帮助将不胜感激.