Python 从零学起(纯基础) 笔记 之 深浅拷贝

时间:2021-04-26 19:54:33

深浅拷贝


 

1.

import  copy
#浅拷贝
copy.copy()
#深拷贝
copy.deepcopy()
#赋值
 =

2.  

对于数字和字符串而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址

对于 字典、元组、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。

浅拷贝,在内存中只额外创建第一层数据。

深拷贝,在内存中将所有的数据重新创建一份排除最后一层,即:Python内部对字符串和数字的优化)

 

 1 import copy
 2 n1 = {"k1":"young","k2":123,"k3":['yy',456]}
 3 n2=n1
 4 print(id(n1),id(n2))
 5 n3 = copy.copy(n1)
 6 print(id(n1),id(n3))
 7 print(id(n1['k3']),id(n3['k3']))
 8 n3 = copy.deepcopy(n1)
 9 print(id(n1),id(n3))
10 print(id(n1['k3']),id(n3['k3']))

结果:

2304080 2304080

2304080 2897360

5343232 5343232

2304080 2872144

5343232 5341992