浅拷贝和深拷贝
浅拷贝只拷贝第一层
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)
浙公网安备 33010602011771号