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是不一样的。

posted @ 2017-11-08 17:06  某电商首席日志工程师  阅读(169)  评论(0编辑  收藏  举报