
E0_copy不是深层副本。你不使用做出深层副本
list()(两者
list(...)并
testList[:]很浅拷贝)。
你
copy.deepcopy(...)用于深度复制列表。
deepcopy(x, memo=None, _nil=[]) Deep copy operation on arbitrary Python objects.
请参阅以下代码段
>>> a = [[1, 2, 3], [4, 5, 6]]>>> b = list(a)>>> a[[1, 2, 3], [4, 5, 6]]>>> b[[1, 2, 3], [4, 5, 6]]>>> a[0][1] = 10>>> a[[1, 10, 3], [4, 5, 6]]>>> b # b changes too -> Not a deepcopy.[[1, 10, 3], [4, 5, 6]]
现在看deepcopy *** 作
>>> import copy>>> b = copy.deepcopy(a)>>> a[[1, 10, 3], [4, 5, 6]]>>> b[[1, 10, 3], [4, 5, 6]]>>> a[0][1] = 9>>> a[[1, 9, 3], [4, 5, 6]]>>> b # b doesn't change -> Deep Copy[[1, 10, 3], [4, 5, 6]]
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)