0

在下面的代码中,我将 list 的内容复制到了 list a的内容中prod。当我更改prod列表值时,a列表值也会发生变化。我也尝试使用prod=a[:]. 我希望列表a保持不变。提前谢谢!l

a=[[1,2,3],[4,5,6],[7,8,9]]
b=[[1,2,3],[4,5,6],[7,8,9]]
prod=a.copy()
for i in range(3):
  sum=0
  for j in range(3):
    sum=0
    print("a= ",a[i][j])
    prod[i][j]=0
    print("a= ",a[i][j])
    for k in range(3):
      sum+=a[i][k]*b[k][j]
      print(a[i][k],b[k][j])
    prod[i][j]=sum  
    print("Sum=",sum,"A[i][k]=",a[i][k])
print(prod)
4

1 回答 1

0

你需要deepcopy()它,因为它是嵌套列表..

from copy import deepcopy

a=[[1,2,3],[4,5,6],[7,8,9]]
b=[[1,2,3],[4,5,6],[7,8,9]]
prod= deepcopy(a)
for i in range(3):
  sum=0
  for j in range(3):
    sum=0
    print("a= ",a[i][j])
    prod[i][j]=0
    print("a= ",a[i][j])
    for k in range(3):
      sum+=a[i][k]*b[k][j]
      print(a[i][k],b[k][j])
    prod[i][j]=sum  
    print("Sum=",sum,"A[i][k]=",a[i][k])
print(prod)
于 2020-11-30T18:06:03.573 回答