拷贝:copy 与深拷贝

16.12 拷贝:copy 与深拷贝

d2 = d1 只是同一对象,改 d2 会影响 d1。

d2 = d1.copy() 或 dict(d1) 浅拷贝,嵌套对象仍共享。

深层嵌套用 copy.deepcopy(d1)。

浅拷贝陷阱

# ========================================
# 示例:浅拷贝
# ========================================
import copy

a = {'info': {'score': 90}}
b = a.copy()          # 浅拷贝
b['info']['score'] = 100
print(a['info'])      # {'score': 100} 嵌套仍共享

c = copy.deepcopy(a)
c['info']['score'] = 50
print(a['info'], c['info'])  # 互不影响