前言
对 python 常用的一些基本知识进行说明整理
『python』python基础教程(1) — 基本数据结构
一、深拷贝与浅拷贝
1.1 直接赋值
仅仅拷贝了引用,因此前后变量没有任何隔离,原 list 改变,拷贝的变量也会发生变化。
1.2 浅拷贝
使用 copy() 函数,拷贝了 list 最外围,而 list 内部的对象仍然是引用。
1.3 深拷贝
使用 deepcopy() 函数,list 内外围均为拷贝,因此前后的变量完全隔离,而非引用。
# 示例 demo
import copy
a = [1, 2, ["a","b"]]
b = a # 直接赋值,变量前后没有隔离
c = copy.copy(a) # 浅拷贝
d = a[:] # 相当于浅拷贝,与 c 相同
e = copy.deepcopy(a) # 深拷贝,前后两个变量完全隔离
a.append(3)
a[2].append("c")
print(a) # [1, 2, ["a", "b", "c"], 3]
print(b) # [1, 2, ["a", "b", "c"], 3]
print(c) # [1, 2, ["a", "b", "c"]]
print(d) # [1, 2, ["a", "b", "c"]]
print(e) # [1, 2, ["a","b"]]
Note: 还没理完,比较忙,抽空继续更新 fighting…