python 赋值,浅拷贝,深拷贝,copy,切片区别
···
结论:
深拷贝⛳:复制对象后并创建了一个新对象,内存地址不一样(无论是否嵌套,都是一个独立对象),改变其中一个值不影响另一个.
浅拷贝和copy,切片🎃:分两中情况
-
不可变对象时(int,string,tuple):直接原对象引用(和赋值一样),内存地址一样,改变其中一个值不影响另一个(不可变对象:改变值,实际新创建了一个对象)
-
可变对象时:外层是新对象,内存地址不一样(改变其中一个值不影响另一个),嵌套层是引用同一对象,内存地址一样(嵌套层改变其中一个值,另一个相应改变)
赋值🍳:直接对原对象引用(不可变对象时:改变值,实际新创建了一个对象,不影响,可变对象时:改变其中一个值,外层或嵌套层相应改变)
···
1.深拷贝:
内存地址:不一样

修改值:不影响

2.浅拷贝和copy,切片
内存地址:外层地址不一样,里层地址一样.

修改值:外层值不变,里面值改变.

3.赋值
地址和修改值:地址一样,值改变

博客主要介绍Python中赋值、浅拷贝、深拷贝、copy和切片的区别。深拷贝会创建新对象,内存地址不同,修改值互不影响;浅拷贝对不可变对象是原对象引用,对可变对象外层是新对象,嵌套层是引用;赋值则是直接引用原对象,可变对象修改值会相互影响。
1489

被折叠的 条评论
为什么被折叠?



