第二模块 3.3 深浅copy

1 深浅copy

dict, list, set 

s = {name:alex,...}

s2 = s , 此时 s2和s 是共享  同一份数据的

s
{'name': 'alex', 'age': 18, 'scores': {'语文': 130, '数学': 60, '英语': 98}}
>>> s2
{'name': 'alex', 'age': 18, 'scores': {'语文': 130, '数学': 60, '英语': 98}}
>>> s2["name"]="金角大王"
>>> s2
{'name': '金角大王', 'age': 18, 'scores': {'语文': 130, '数学': 60, '英语': 98}}
>>> s
{'name': '金角大王', 'age': 18, 'scores': {'语文': 130, '数学': 60, '英语': 98}}
>>> s3 = s. copy()
>>> s3
{'name': '金角大王', 'age': 18, 'scores': {'语文': 130, '数学': 60, '英语': 98}}
>>> s2
{'name': '金角大王', 'age': 18, 'scores': {'语文': 130, '数学': 60, '英语': 98}}
>>> s
{'name': '金角大王', 'age': 18, 'scores': {'语文': 130, '数学': 60, '英语': 98}}
>>> s3["name"] = '黑姑娘'

深copy

>>> import copy
>>> s
{'name': '金角大王', 'age': 18, 'scores': {'语文': 130, '数学': 60, '英语': 98}}
>>> s4 = copy.deepcopy(s)
>>> s4
{'name': '金角大王', 'age': 18, 'scores': {'语文': 130, '数学': 60, '英语': 98}}
>>> s["scores"]["语文"]= 20
>>> s4["scores"]["语文"]= 200
>>> s4
{'name': '金角大王', 'age': 18, 'scores': {'语文': 200, '数学': 60, '英语': 98}}
>>> s
{'name': '金角大王', 'age': 18, 'scores': {'语文': 20, '数学': 60, '英语': 98}}
原文地址:https://www.cnblogs.com/kissfire008/p/11736627.html