python的数据存储方式
>> a = [1, 2, 3]
>>> b = a
>>> a = [4, 5, 6] //赋新的值给 a
>>> a
[4, 5, 6]
>>> b
[1, 2, 3]
# a 的值改变后,b 并没有随着 a 变
>>> a = [1, 2, 3]
>>> b = a
>>> a[0], a[1], a[2] = 4, 5, 6 //改变原来 list 中的元素
>>> a
[4, 5, 6]
>>> b
[4, 5, 6]
# a 的值改变后,b 随着 a 变了
深浅拷贝
浅拷贝:拷贝第一层内容.不拷贝内部子对象,用 [:]或copy() 。赋值, 没有创建新对象. 共用同一个对象,他们是相同的,赋值后的变量指向原有的内存地址
深拷贝:拷贝所有内容. 包括内部的所有,形成一个新的对象,虽然与之前的值和内容一模一样,但是它们完完全全的两个对象,用deepcopy()
>>> import copy
>>> origin = [1, 2, [3, 4]]
总结:
1、深拷贝是对源对象的赋值(深层对象),占用的内存空间不同
2、浅拷贝是对最外层对象进行拷贝,占用的内存空间相同
3、深拷贝:数据拷贝更加安全(容灾特性)
4、浅拷贝:节省资源和内存空间