gpt4 book ai didi

python - 尝试将矩阵旋转 90 度但无法正常工作

转载 作者:行者123 更新时间:2023-12-04 14:48:52 33 4
gpt4 key购买 nike

def rotate_ninety(matrix):
putin = []
temporary = []
row_size = len(matrix)
col_size = len(matrix[0])
ccount = col_size-1
putin_idx = 0
while ccount > -1:
for i in range(row_size):
temporary.insert(i, matrix[i][ccount])

putin.insert(putin_idx, temporary)
ccount = ccount -1
temporary.clear()
putin_idx += 1

print(putin)
return 0

所以,如果我有输入

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

结果应该是:

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

但是,当我打印 putin 时,我得到 [[] [] []],一个全为空的数组,我不明白我的逻辑哪里出了问题。我知道还有其他更有效的方法可以做到这一点,但我不明白我的代码怎么错了

最佳答案

当您将一个列表赋值(追加或插入)到一个变量(另一个列表)时,列表对象将被赋值或追加。因为在将 temporary 列表添加到 putin 列表然后清除 temporary 之后,添加的对象也被删除了。您需要将 temporary 列表的 copy 添加到 putin,如下所示:

import copy

def rotate_ninety(matrix):
putin = []
temporary = []
row_size = len(matrix)
col_size = len(matrix[0])
ccount = col_size-1
putin_idx = 0
while ccount > -1:
for i in range(row_size):
temporary.append(matrix[i][ccount])
putin.append(copy.copy(temporary))
ccount = ccount -1
temporary.clear()
putin_idx += 1

print(putin)
return 0

matrix = [[1,2,3],[4,5,6],[7,8,9]]
rotate_ninety(matrix)

结果将是:
[[3, 6, 9], [2, 5, 8], [1, 4, 7]]

关于python - 尝试将矩阵旋转 90 度但无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69430672/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com