列表在内存中的存储方式

x=10
L=[x,123] #列表的元素还可以是变量
L[0]
10

d={'m':x} #字典的键值对中的值也可以是变量
d['m']
10

通过变量名直接找到值,称为值的直接引用,字典和列表属于容器类型,通过索引和键找到值的内存地址,然后找到值,称为间接引用

深浅拷贝

深拷贝和浅拷贝对不可变类型来说没有区别,主要是针对可变类型

浅拷贝:把原列表第一层元素(不区分元素是可变还是不可变类型)的地址拷贝赋值给一个新列表,新列表自己的地址和原列表的地址不同

深拷贝:对每一层都区分元素是可变还是不可变类型,对于不可变类型把原列表元素的地址拷贝赋值给一个新列表的对应位置,对于可变类型,产生了一个新的内存地址赋值给新列表的对应位置

结论:如何想让拷贝出来的新列表和原列表完全独立开,对其中一个做修改而不影响另外一个,应该使用深拷贝

浅拷贝

深拷贝