4.1深浅拷贝

1.不同数据在内存中的存储方式

1.数字 字符串 布尔
名称和值的地址放一个位置,值放一个位置。
 
相同的数字 字符串会被自动优化到同一个地址里
 
a = 'abc'
b = 'abc'
id(a)和id(b)相同
 
2.列表、元祖、字典、集合
名称和值的地址放一个位值,每个元素加下一个元素的地址放一个位置。

2.深浅拷贝

 

数字和字符串

浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。

 

列表和字典

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

import copy
   
n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}
   
n3 = copy.copy(n1)

 

3、深拷贝

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

 

import copy
   
n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}
   
n4 = copy.deepcopy(n1)

  

 

 

posted on 2016-11-23 09:39  limpidstar  阅读(53)  评论(0)    收藏  举报

导航