python中的浅拷贝和深拷贝

浅copy仅仅是对对象的引用,可以理解为是软连接。而深copy是新内存的开辟,他会重新创建内存块存放数据。
简单例子说明:

name_info = {'name':'jack','age':30,'hobby':['movie','football']}
import copy
name_info2 = copy.copy(name_info)
name_info['hobby'][0] = 'music'
print name_info2 
print name_info
In [256]: name_info
Out[256]: {'age': 30, 'hobby': ['music', 'football'], 'name': 'jack'}

In [257]: name_info2
Out[257]: {'age': 30, 'hobby': ['music', 'football'], 'name': 'jack'}

  

可以发现name_info和name_info2都一样,这个就是浅copy。

name_info = {'name':'jack','age':30,'hobby':['movie','football']}
import copy 
name_info2 = copy.deepcopy(name_info)
name_info['hobby'][0] = 'music'
print name_info2 
print name_info

Out[262]: {'age': 30, 'hobby': ['movie', 'football'], 'name': 'jack'}

In [263]: name_info
Out[263]: {'age': 30, 'hobby': ['music', 'football'], 'name': 'jack'}

  

可以发现name_info和name_info2是不一样的。

原文地址:https://www.cnblogs.com/lin1/p/7805032.html