【发布时间】:2015-08-06 17:57:03
【问题描述】:
所以让我们考虑一下我有以下数组:
arr1 = [[1,1],[2,1]]
现在,我构造如下函数:
def func(mylist):
print(mylist)
List = list(mylist)
for i in range(2):
for j in range(2):
List[i][j]=0
print mylist
print List
return mylist
然后,当我在我的 arr1 上调用我的函数时,初始数组被修改(mylist)。 这真是奇怪的行为,因为我正在做一个 mylist 的副本,而且只有 修改复制的数组列表。任何人都可以向我解释发生了什么?
【问题讨论】:
-
list()只创建浅拷贝,使用copy.deepcopy。 -
你的缩进和命名无处不在
-
@Ashwini Chaudhary 好的,谢谢。这解决了问题。抱歉这个愚蠢的问题。
-
我不知道为什么人们对这个投票如此激烈,SO 上的格式对新手来说并不那么明显。
-
顺便感谢格式化部分。下次我会努力做得更好;-)