【发布时间】:2016-01-08 17:22:23
【问题描述】:
我在 python 中处理矩阵,花了几个小时尝试调试程序后,设法将问题本质上追溯到这段代码,其中矩阵的所有非零条目都均匀增加。
list2=[[1,2],[0,4]]
list1=list2
for row in list1:
for i in range(0,len(row)):
if row[i]!=0:
row[i]=row[i]+10
print(list1) #returns [[11,12],[0,14]], as expected
print(list2) #returns [[11,12],[0,14]], want to return [[1,2],[0,4]]
这里缺少一些基本的东西。我认为通过声明 list1=list2 创建了一个新列表,其余代码对其进行了修改,同时保持 list2 不变。
出了什么问题,我该如何解决?
【问题讨论】:
-
从拷贝导入深拷贝; list1=deepcopy(list2)