浅拷贝和深拷贝

  浅拷贝只拷贝第一层

name=['aff','bff','cff','dff',['e','gff']]
names=name.copy()
name[2]='good'
name[4][1]='job'
print(name)
print(names)

第一层被拷贝了,还是原来的值,第二层只拷贝内存地址,第二层的内容不会被直接拷贝

['aff', 'bff', 'good', 'dff', ['e', 'job']]
['aff', 'bff', 'cff', 'dff', ['e', 'job']]

 

a=1

b=a

a=5

b的结果还是1

列表的话有区别:

a=[1,2,3]

b=a

a[1]=32

b的结果是[1,32,3]

实现浅拷贝的三种方式:

1【函数】

person=['name',['a',100]]

person1=copy.copy(person)

2【完全切片的方式】

person2=person[:]

3【工厂函数】

person3=list(person)

 

深拷贝:

深拷贝拷贝所有

copy模块

name=[1,2,3]

names=copy.depcopy(name)

 

posted @ 2020-05-07 22:37  技术根据地  阅读(81)  评论(0)    收藏  举报