Помогите, пожалуйста, найти причину изменеения списка функцией. Список (matrixA) передаю в функцию delta_func в виде копии (при вычислении deltas). В конце концов matrixA все равно изменяется.
def train(matrix):
matrixB = [30, 150, 110]
matrixA = list(map(list, zip(*matrix))) # список списков размерностью 3 на 3 с целыми числами
#------------------------------------------------------------------------------------------------------------------------------
def delta_func(A, B, i):
print(id(A))
if i:
for index in range(3):
A[index][i - 1] = B[index]
plus = lambda X: X[0][0]*X[1][1]*X[2][2] + X[0][1]*X[1][2]*X[2][0] + X[0][2]*X[1][0]*X[2][1]
return plus(A) - plus([item[::-1] for item in A])
#------------------------------------------------------------------------------------------------------------------------------
delta = delta_func(matrixA, matrixB, 0)
deltas = [int(delta_func(matrixA[:], matrixB, i) / delta) for i in range(1, 4)]
#------------------------------------------------------------------------------------------------------------------------------
check = lambda x: [360, -360][bool(x)]
return [i + check(i) if abs(i) > 180 else i for i in (item % check(item) for item in deltas)]