我刚刚开始使用SAGE,据我所知,它与python非常接近,我遇到了这个问题,我将有一个矩阵作为一个函数的参数,我希望在函数中多次使用它的原始函数,但是通过函数的不同部分它改变了值。你知道吗
我在一个教程中看到,将函数中的变量声明为
variable = list(parameter)
不影响参数或括号中的任何内容。但是我不能让它工作。。
下面是我提出问题的程序的一部分(如果需要,我可以添加其余部分):我声明变量determinant
,它的值是函数my_Gauss_determinant
的结果,变量auxmmatrix
是参数。通过函数my_Gauss_determinant
,auxmmatrix
的值会改变,但由于某些原因,mmatrix
的值也会改变。如何避免这种情况,并能够重新使用参数mmatrix
及其原始值?你知道吗
def my_Cramer_solve(mmatrix,bb):
auxmmatrix=list(mmatrix)
determinant=my_Gauss_determinant(auxmmatrix)
if determinant==0:
print
k=len(auxmmatrix)
solution=[]
for l in range(k):
auxmmatrix1=my_replace_column(list(mmatrix),l,bb)
determinant1=my_Gauss_determinant(auxmmatrix1)
solution.append(determinant1/determinant0)
return solution
你想要的是
mmatrix
的拷贝。list(other_list)
工作的原因是它遍历other_list
中的每一项来创建一个新列表。但是列表中的可变对象within
不会被复制要制作完整的副本,可以使用
copy.deepcopy
来复制列表中的元素因此,如果您只想复制列表,而不想复制列表中的元素,您可以这样做
如果您也想复制列表中的元素,请使用
copy.deepcopy
如果
m
是一个矩阵,您可以通过或者
要理解复制列表和矩阵等容器结构的需要,可以阅读the tutorial on objects and classes in Python and Sage。你知道吗
也推荐other Sage tutorials!你知道吗
相关问题 更多 >
编程相关推荐