Python实现矩阵90度旋转运行返回空数组,逻辑错误原因排查
代码逻辑错误点
Python中列表为可变对象,你的代码全程复用同一个temporary列表实例,向putin中插入的是该实例的引用而非独立复制的列表。后续执行temporary.clear()操作时,putin中所有指向该实例的元素都会同步被清空,最终得到全空的嵌套列表。
修复方案
每次循环时创建新的临时列表,无需复用同一个实例也不需要调用clear()方法,修改后代码如下:
def rotate_ninety(matrix): putin = [] row_size = len(matrix) col_size = len(matrix[0]) ccount = col_size - 1 putin_idx = 0 while ccount > -1: temporary = [] for i in range(row_size): temporary.insert(i, matrix[i][ccount]) putin.insert(putin_idx, temporary) ccount -= 1 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]],符合预期。
内容的提问来源于stack exchange,提问作者questionaire
相关产品推荐
相关产品推荐

