- 这是一个用迭代法算行列式的程序,遇到了这样的问题:
在经过24行之前determinant的值是123456789
经过24行之后,
determinant的值变为1235689,真的不知道为何determinant的值为何会改变,明明24行没有对determinant做过任何改变。
这是24行涉及的函数,这个函数只改变了determinant.copy即new-deter的值
在经过24行之前determinant的值是123456789
经过24行之后,
determinant的值变为1235689,真的不知道为何determinant的值为何会改变,明明24行没有对determinant做过任何改变。
这是24行涉及的函数,这个函数只改变了determinant.copy即new-deter的值
determinant.copy()是浅拷贝,只复制了列表的第一层,列表第二层的[1,2,3]没有复制,只传递了其引用。
你在函数的for循环中用del删除列表第二层的数据。determinant中也会改变。
你改用copy.deepcopy(determinant)深拷贝就好了
import copy
new_deter = copy.deepcopy(determinant)