一文带你解决python中深拷贝、浅拷贝、nums[:]

1.深拷贝与浅拷贝

        你只需要记住一句话:浅拷贝只会拷贝父对象,不会拷贝对象的内部的子对象。

        如果上面那句话听不懂,只用记住这句话:浅拷贝只拷贝一层。

        举例:

        下图1中a是原对象,c是浅拷贝。a同时append(5)操作和a[4].append('c')操作。c只执行了a[4].append('c')操作。d是深拷贝,d执行了全部操作。

        好了,我的讲解结束。回忆一下,我做开始说的话:浅拷贝只拷贝一层

2.nums[:] 

        这个只需要记住一句话:nums[:]=list1,只会对nums[:]中的值操作,不会对地址操作。

        nums=list1,使得nums指向了list1的地址,改变了nums原来的地址。

nums=[1,2,3,4]
list1=[3,4,5]
nums=list1
print("nums_id:",id(nums))
print("list1_id",id(list1))
nums[:]=list1
print("nums_id:",id(nums))
print("nums",nums)

 上面两张图和下面两张图对比一下:

nums=[1,2,3,4]
list1=[3,4,5]
# nums=list1
print("nums:",nums)
print("nums_id:",id(nums))
print("list1_id",id(list1))
nums[:]=list1
print("nums_id:",id(nums))
print("nums",nums)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值