博客导语拷贝分为赋值引用、浅拷贝、深拷贝三者差异是Python面试必考题。区分可变/不可变对象拷贝逻辑解决嵌套列表拷贝数据联动修改问题。一、三种复制方式定义赋值引用两个变量指向同一块内存完全联动修改浅拷贝copy拷贝顶层独立内存嵌套子对象依旧引用深拷贝deepcopy所有层级全部独立内存完全互不影响二、不可变对象str/int/tuple浅拷贝、深拷贝、赋值引用地址完全一致Python内存复用优化不存在数据修改联动。三、可变对象list/dict/set单层可变对象浅拷贝和深拷贝效果一致完全独立嵌套可变对象浅拷贝内层数据共享地址修改互相影响深拷贝完全隔离。import copy a [1,[2,3]] b copy.copy(a) # 浅拷贝 b[1][0] 99 print(a) # [1,[99,3]] 数据联动 c copy.deepcopy(a) c[1][0]100 print(a) # 无变化四、极简选型规则无嵌套浅拷贝存在嵌套深拷贝不需要隔离直接赋值