[Python] dict字典的浅复制与深复制
Python中针对dict字典有两种复制:
(1)浅复制:利用 copy() 或者 dict() ;复制后对原dict的内部子对象(方括号[]内元素)进行操作时,由浅复制得到的dict会受该操作影响
(2)深复制:利用 deepcopy() ;复制后对原dict的内部子对象(方括号[]内元素)进行操作时,由深复制得到的dict不会受该操作影响
from copy import deepcopy def test(): d1 = {"a": {"keys": [1, 2, 3]}, 'b': {"keys": [4, 5, 6]}} d2 = d1.copy() # 浅复制 d3 = dict(d1) # 浅复制 d4 = deepcopy(d1) # 深复制 print("d1=%s \nd2=%s \nd3=%s \nd4=%s" % (d1, d2, d3, d4)) d1["a"]["keys"] = [1, 2] # 修改d1的值 print("d1 modified.") print("d1=%s \nd2=%s \nd3=%s \nd4=%s" % (d1, d2, d3, d4)) """ 输出结果: d1={'a': {'keys': [1, 2, 3]}, 'b': {'keys': [4, 5, 6]}} d2={'a': {'keys': [1, 2, 3]}, 'b': {'keys': [4, 5, 6]}} d3={'a': {'keys': [1, 2, 3]}, 'b': {'keys': [4, 5, 6]}} d4={'a': {'keys': [1, 2, 3]}, 'b': {'keys': [4, 5, 6]}} d1 modified. d1={'a': {'keys': [1, 2]}, 'b': {'keys': [4, 5, 6]}} d2={'a': {'keys': [1, 2]}, 'b': {'keys': [4, 5, 6]}} d3={'a': {'keys': [1, 2]}, 'b': {'keys': [4, 5, 6]}} d4={'a': {'keys': [1, 2, 3]}, 'b': {'keys': [4, 5, 6]}} """