如何在 Python 中创建一个新列表,以便对新列表的操作不会影响旧列表?

How to create a new List in Python, such that manipulations to the new list does not affect the old one?

在下面的代码中,我将列表 a 的内容复制到列表 prod 的内容。当我更改 prod 列表值时,a 列表值也得到 changed.I 也尝试使用 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)

你需要 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)