标签:pytho span div 分享 空间 article 切片 tail .net
【可变对象-不可变对象】
在Python中不可变对象指:一旦创建就不可修改的对象,包括字符串,元祖,数字
在Python中可变对象是指:可以修改的对象,包括:列表、字典
>>> L1 = [2,3,4] #L1变量指向的是一个可变对象:列表 >>> L2 = L1 #将L1值赋给L2后,两者共享引用同一个列表对象[1,2,3,4] >>> L1[0] = 200 #因为列表可变,改变L1中第一个元素的值 >>> L1; L2 #改变后,L1,L2同时改变,因为对象本身值变了 [200, 3, 4] [200, 3, 4]
如果不想改变列表L2的值,有两种方法:切片 和 copy模块
>>> L1 = [2,3,4] >>> L2 = L1 >>> id(L1);id(L2) #共享引用一个可变对象 45811784L 45811784L >>> L2 = L1[:] #切片操作 >>> id(L1);id(L2) #切片后,对象就不一样了 45811784L 45806920L >>> L1[0] = 200 >>> L1;L2 #L1发生改变,L2没有变化 [200, 3, 4] [2, 3, 4]
【拷贝】
1. 切片技术应用于所有的序列,包括:列表、字符串、元祖
但切片不能应用于字典。对字典只能使用D.copy()方法或D.deepcopy()方法.
2. 深浅拷贝,即可用于序列,也可用于字典
>>> import copy
>>> X = copy.copy(Y) #浅拷贝:只拷贝顶级的对象,或者说:父级对象
>>> X = copy.deepcopy(Y) #深拷贝:拷贝所有对象,顶级对象及其嵌套对象。或者说:父级对象及其子对象
如果字典只有顶级对象
D和C1变,C2不变
【结论】
转载http://blog.csdn.net/jerry_1126/article/details/41852591
标签:pytho span div 分享 空间 article 切片 tail .net
原文地址:http://www.cnblogs.com/p0yz/p/7450947.html