拷贝
copy(),
>>> help(copy)
import copy
x = copy.copy(y) # make a shallow copy of y 浅拷贝
x = copy.deepcopy(y) # make a deep copy of y 深拷贝
>>> import copy
>>> a = [1, 2, 3, 4, ['a', 'b', 'c']]
>>> b = a
>>> c = copy.copy(a)
>>> d = copy.deepcopy(a)
>>> id(a)
49228776
>>> id(b)
49228776
>>> id(c)
42855920
>>> id(d)
48641608
发现id都改变了,
对a列表添加操作看看会不会对新拷贝出来的有影响
对a列表的子列表添加操作看看会不会对新拷贝出来的有影响
>>> a.append(5)#操作列表
>>> a[4].append('d')#操作列表中的子列表
>>> a
[1, 2, 3, 4, ['a', 'b', 'c', 'd'], 5]
>>> b
[1, 2, 3, 4, ['a', 'b', 'c', 'd'], 5]
>>> c
[1, 2, 3, 4, ['a', 'b', 'c', 'd']]
>>> d
[1, 2, 3, 4, ['a', 'b', 'c']]
浅拷贝是指拷贝的只是原对象元素的引用,换句话说,浅拷贝产生的对象本身是新的,但是它的内容不是新的,只是对原对象的一个引用
深拷贝就是完全复制新建的。
特别注意Python中的数字,字符串,原子类型没拷贝一说。
只包含‘原子类型’的元祖也不能深拷贝