python copy和deepcopy
copy模块
copy模块只有两个方法,copy和deepcopy,了解不同之前先说一个概念,组合对象
组合对象
组合对象包含了其它对象的对象,比如列表和元组,包含了原子类型的对象,所以是组合对象
copy和deepcopy的不同
copy和deepcopy是对针对组合对象来说的,原子类型的对象,没有copy和deepcopy的说法
copy浅复制
import copy l1 = [1, 2, [3, 4]] l2 = copy.copy(l1) print l1 print l2 l2[2][0] = 50 print l1 print l2 #---- 结果 ---- [1, 2, [3, 4]] [1, 2, [3, 4]] [1, 2, [50, 4]] [1, 2, [50, 4]]
浅复制对引用了其它类型(list,dict)的对象,只复制引用,不复制深层的数据对象,这个会引起数据的异常同步
deepcopy深复制
import copy l1 = [1, 2, [3, 4]] l2 = copy.deepcopy(l1) print l1 print l2 l2[2][0] = 50 print l1 print l2 #---- 结果 ---- [1, 2, [3, 4]] [1, 2, [3, 4]] [1, 2, [3, 4]] [1, 2, [50, 4]]
浅复制对引用了其它类型(list,dict)的对象,复制了深层的对象,数据的异常同步解决了
                    
                
                
            
        
浙公网安备 33010602011771号