我正在编写一个片段来查找矩阵的行列式。矩阵表示为嵌套列表,例如,
[[2,3],[5,6]]
其中外部列表的成员是行,内部列表的成员是列。
在必须通过删除一些元素将矩阵扩展为更简单的矩阵的步骤中,我必须将原始列表的备份保存到另一个列表“bak”以在后续扩展中使用它。
但是在第一个扩展步骤之后,当我尝试从“bak”恢复原始列表的值时,似乎对原始列表的操作也反映在“bak”上。
def determinant(matrix):
if len(matrix)==2:
det = matrix[0][0]*matrix[1][1]-matrix[1][0]*matrix[0][1]
if len(matrix)>2:
flag=0
bak=[]
for x in matrix:
bak.append(x)
dump=[]
for ind,x in enumerate(matrix):
matrix.pop(ind)
for n,y in enumerate(matrix):
matrix[n].pop(ind)
dump.append(matrix)
print "bak",bak
matrix=bak
matrix=[[1,2,3],[4,5,6],[7,8,9]]
determinant(matrix)
在打印“bak”时,输出是 [[1, 2, 3], [5, 6], [8, 9]] 应该是 [[1,2,3],[4,5,6 ],[7,8,9]]
如果我监督任何概念,请帮助我。