python拷贝

it2023-10-15  64

python拷贝

拷贝

列表,字典,集合都可拷贝


拷贝

基本方法:

方式说明copy()浅拷贝:只拷贝容器第一层,如果里面有其他容器层,则修改后对copy的也有影响deepcopy()深拷贝 :完全分离的2个对象,所有容器层的内容均可修改,不会互相影响

。以列表为例

示例如下:

浅拷贝 >>> a1 = ['na',2,[11,35]] >>> a2 = a1.copy() #a2 拷贝 a1 >>> a2 ['na', 2, [11, 35]] >>> id(a1) 48881024 #查看是否是同一个对象 >>> id(a2) 48800384 >>> a1[0] is a2[0] #查看容器内部元素是否是同一个对象 True >>> a1[2] is a2[2] True >>> a1[0] = 110 >>> a1 [110, 2, [11, 35]] >>> a2 ['na', 2, [11, 35]] >>> a1[2][1]='pyhton' # 修改容器第二层 >>> a1 [110, 2, [11, 'pyhton']] >>> a2 ['na', 2, [11, 'pyhton']] #互相影响 >>> 深拷贝 - >>> import copy >>> a1 [110, 2, [11, 'pyhton']] >>> a3 = copy.deepcopy(a1) >>> a3 [110, 2, [11, 'pyhton']] # 深拷贝后修改容器第二层 >>> a1[2][0] = '66' >>> a1 [110, 2, ['66', 'pyhton']] >>> a3 [110, 2, [11, 'pyhton']] # 对后面无影响 >>>
最新回复(0)