我正在尝试在 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]。不知道为什么这不起作用
只需更正你的第二行:
反转 = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
在您的情况下,2个列表 invert 和 array 对应于相同的元素并同时修改。