Python进阶之路 6.3.2 copy方法和deepcopy函数

copy方法和deepcopy函数

copy方法用于复制一个字典,该方法返回复制后的新字典。

dict = {
   'a':20,'b':'hello','c':[1,2,3,4,5]}
#复制一个新的字典
newdict = dict.copy()

copy方法复制的字典只是浅复制,也就是说值复制第1层的字典数据。至于第2层及以下的所有层,原字典和新字典都指向同一个值,也就是说,不管是修改原字典中的这些元素,还是修改新字典中的这些元素,原字典和新字典中对应的元素都会同时改变。对于上面的代码,如果修改字典dict中key等于’a’或’b’的值,字典newdict中对应的值并不会发生改变,因为’a’和’b’的值都属于第1层(只是一个简单的数值或字符串),而不管修改哪一个字典中key为’c’的值,另外一个字典对应的值也都会改变。这里修改key为’c’的值并不是指替换整个列表([1,2,3,4]),而是修改该列表中的某个值,如将’4’修改成’20’。

如果要想改变这种情况,就需要使用copy模块中的deepcopy函数,该函数可以对序列进行更深层复制。

#导入copy模块中的deepcopy函数
from copy import deepcopy
dict = {
   'a':20,'b':'hello'
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值