如何在 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)
在下面的代码中,我将列表 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)