当复制的是不可变数据类型
复制不可变数据类型,不管copy还是deepcopy,都是同一个地址当浅复制的值是不可变对象(数值,字符串,元组)时和=“赋值”的情况一样,对象的id值与浅复制原来的值相同。
复制的值是可变对象(列表和字典)
浅拷贝copy有两种情况:
第一种情况:复制的 对象中无 复杂 子对象,原来值的改变并不会影响浅复制的值,同时浅复制的值改变也并不会影响原来的值。原来值的id值与浅复制原来的值不同。
第二种情况:复制的对象中有 复杂 子对象 (例如列表中的一个子元素是一个列表), 改变原来的值 中的复杂子对象的值 ,会影响浅复制的值。
深拷贝deepcopy:完全复制独立,包括内层列表和字典
得出结论:
①、copy浅拷贝并没有真正的把内层列表独立拷贝出来,导致修改了内层列表之后。也跟着改变,完全拷贝出来,指的是id地址完全不相同,证明你完全拷贝出来了
②、deepcopy深拷贝可以将内层列表完全独立拷贝出来,所以深拷贝的值没有改变。