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

时间:2023-03-09 00:13:00
Python 从零学起(纯基础) 笔记 之 深浅拷贝

深浅拷贝


1.

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

2.  

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

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

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

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

 

 import copy
n1 = {"k1":"young","k2":123,"k3":['yy',456]}
n2=n1
print(id(n1),id(n2))
n3 = copy.copy(n1)
print(id(n1),id(n3))
print(id(n1['k3']),id(n3['k3']))
n3 = copy.deepcopy(n1)
print(id(n1),id(n3))
print(id(n1['k3']),id(n3['k3']))

结果:

2304080 2304080

2304080 2897360

5343232 5343232

2304080 2872144

5343232 5341992