Я напрямую изменяю список здесь, и все же список не обновляется после вызова функции.Локальный список в функции обновляется, но он не меняет глобального списка.Когда я попробовал с более простой функцией, список действительно видоизменялся.Является ли приведенный ниже код особым случаем, который вызывает изменение списка?
def rotate_matrix(matrix):
width = len(matrix[0])
height = len(matrix)
if width != height:
return matrix
for layer in range(0, width // 2):
start = layer
end = width - layer - 1
for offset in range(start, end):
temp = matrix[start][offset]
matrix[start][offset] = matrix[end - offset][start]
matrix[end - offset][start] = matrix[end][end - offset]
matrix[end][end - offset] = matrix[offset][end]
matrix[offset][end] = temp
print(matrix) # it is updated here
return matrix
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(rotate_matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])) # updated
print(matrix) # not updated