当前位置:  开发笔记 > 编程语言 > 正文

使用循环/递归镜像矩阵中的行?

如何解决《使用循环/递归镜像矩阵中的行?》经验,为你挑选了0个好方法。

给定一些矩阵,我需要镜像矩阵中的所有行.例如

[[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)]))

我认为递归步骤是错误的.我尝试使用切片运算符,但我不确定应该如何正确完成.任何有关此问题的帮助将不胜感激.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有