copy方法返回一个具有相同键值对的新字典,该方法实现的是浅复制,因为值是相同的。
x={'username':'张无忌','kunfu':['九阳神功','太极','乾坤大挪移']}
y=x.copy()
print(y)
y['username']='张三丰'
y['kunfu'].remove('九阳神功')
y['kunfu'].remove('乾坤大挪移')
print(y)
输出
{'username': '张无忌', 'kunfu': ['九阳神功', '太极', '乾坤大挪移']}
{'username': '张三丰', 'kunfu': ['太极']}
由上面可以看出,当在副本中替换值的时候,原始字典不受影响,但是如果修改了某个值,原始的字典也会改变,因为同样的值也存储在原字典中。因此我们使用深度复制。
from copy import deepcopy
d={}
d['names']=['乔峰','虚竹','段誉']
c = d.copy()
dc = deepcopy(d)
d['names'].append('郭靖')
print(c)
print(dc)
输出
{'names': ['乔峰', '虚竹', '段誉', '郭靖']}
{'names': ['乔峰', '虚竹', '段誉']}
我们看到,虽然改变了副本,但是原字符串不会被改变。
工程文件下载:https://download.csdn.net/download/yysyangyangyangshan/10694425