为什么这不适用于反转二维方阵? [重复]

问题描述 投票:0回答:1

我正在尝试在 python 中反转(转置)一个二维方阵。我知道有很多方法可以用 numpy 来做到这一点,但由于我只有一个方形数组,我认为可以简单地通过以下方法完成:

array = [[1,2,3],[4,5,6],[7,8,9]]

invert = array

for i in range(len(array)):
    for j in range(len(array[0])):
        invert[j][i] = array[i][j]

但是,当我运行它并打印结果时,我得到以下数组

[1, 2, 3]
[2, 5, 6]
[3, 6, 9]

它似乎部分反转(第一列是第一行),但不是完全反转(第一行仍然是第一行)。

代码很简单,我只是从 inverse 与 array 相同开始,然后将所有 inverse[j,i] 替换为 array[i,j]。不知道为什么这不起作用

python arrays transpose inverse
1个回答
0
投票

只需更正你的第二行:

反转 = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

在您的情况下,2个列表 invert 和 array 对应于相同的元素并同时修改。

© www.soinside.com 2019 - 2024. All rights reserved.