问题:
首先看下面例子:
count_a = [2,3,5,6]
count_b = count_a
count_b.append('a')
# 打印 count_a
print count_a
代码中,列表a赋值给列表b, 接着对列表b末尾附件一个元素,最后打印列表a
output:
[2, 3, 5, 6, ‘a’]
对列表b的操作,在列表a上也生效了。
原因:
列表b和列表a指向同一块内存,对其中任何一个修改,两个都会生效。
那有没有办法实现,对列表b的操作不影响列表a呢?
请看下面的深拷贝。
深拷贝
import copy
count_a = [2,3,5,6]
count_b = copy.deepcopy(count_a)
count_b.append('a')
print count_a
列表b通过深拷贝,获得一块新的内存地址,后续对列表b的操作就不会影响到列表a。
output:
[2, 3, 5, 6]