1. 可变与不可变数据类型

  • 不可变数据类型:数字,字符串,元组
  • 可变类型:列表,字典 ```python x=[2,2,3] print(id(x))

    467739507464

    当你对可变类型进行修改时,比如这个列表对象x,

    它的内存地址不会变化,注意是这个列表对象x,改变的是该内容地址的内容

    x[0]=5 print(id(x))
    467739507464

像字符串,列表,数字这些不可变数据类型,,是不能修改的,比如我想要一个’blex’的字符串,

只能重新创建一个’Alex’的对象,然后让指针指向这个新对象

s=’alex’ print(id(s))

467739483920

报错

s[0]=’e’

s=”blex” print(id(s)) 467739591488 ```

2. 浅复制

  1. 直接赋值,默认浅拷贝传递对象的引用而已,b列表改变,a也会做相同的改变

图片.png
图片.png

  1. copy浅拷贝,没有拷贝子对象,所以原始数据子对象改变,复制的子对象也会改变

图片.png
图片.png
图片.png帮助理解的网图:
深浅复制,list深浅复制 - 图6
深浅复制,list深浅复制 - 图7

3. 深复制

深拷贝,包含对象里面的子对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变
图片.png
参考文献:
可视化网站