FloydReme
@FloydReme
Пишу музыку и программирую

Почему в методе Крамера возникла ошибка?

Здравствуйте! Пишу свой метод Крамера на питоне. Возникла проблема с формированием следующих матриц. По моей логике код должен работать нормально, ибо аргумент функции defaultMatrix никак не меняется, а меняются только переменные, хранящие исходный массив, но питон думает иначе... В чем может быть ошибка? Спасибо

Вот код:
def CramersRule(defaultMatrix, values):
        matrix1 = defaultMatrix
        for i in range(3):
            matrix1[i][0] = -values[I]

        matrix2 = defaultMatrix
        for i in range(3):
            matrix2[i][1] = -values[I]

        matrix3 = defaultMatrix
        for i in range(3):
            matrix3[i][2] = -values[i]
        # ...


Вот вывод в консоль:
quRBCBHfDHA.jpg?size=1280x201&quality=96&proxy=1&sign=1d844c79d6445fddfde1d19752a558d3&type=album
  • Вопрос задан
  • 225 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
defaultMatrix никак не меняется, а меняются только переменные, хранящие исходный массив

Меняется. Список является Mutable объектом, меняя переменную, в которую присвоен список - меняется и оригинальный список, т.к. переменная не копирует оригинальный список, а лишь является ссылкой на один и тот же объект.
https://medium.com/@meghamohan/mutable-and-immutab...

Для копирования есть дипкопи, например https://docs.python.org/3/library/copy.html
import copy

matrix1 = copy.deepcopy(defaultMatrix)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы