一、浅copy
ndd= [1,23,3,34,6,[2,2,3,4],3] ncc = ndd.copy() #变量ncc复制一份ndd print (ndd) print (ncc)
ndd[3]='abc' ndd[5][0]='def'#只列表是独立的一个内存指针,改另一块的内存指针。 #此copy为浅copy。只copy列表第一层。 print (ndd) print (ncc)
#######################################
二、深copy
import copy ncc = copy.deepcopy(ndd) #深copy,完全独立复制一份内存 print (ndd) print (ncc)
ncc = ndd #引用内存指针
#################################
例:浅copy的作用:
persion = ['name',['a',100]] p1 = copy.copy(persion) p2=persion[:] p3=list(persion) #三种方式实现浅copy
p1=persion[:] p2=persion[:]
p1[0]='aaa' p2[0]='bbb' print(p1) print(p2)
p1[1][1]='dd' print(p1) print(p2) #浅copy,作用可以改单独第一层,同步改第二、三层,例:联合账号
|