python直接赋值、切片、浅拷贝和深拷贝

python中copy和deepcopy区别:

  1. 复制不可变数据类型(数值,字符串,元组),不管copy和deepcopy,都是同一个地址,当浅复制的值是不可变对象时和=“赋值”的情况一样,对象的id值与浅复制原来的值相同。
  2. 复制的值是可变对象(列表和字典)
  • 浅拷贝copy有两种情况:

    第一种情况:复制的 对象中 复杂 子对象,原来值的改变并不会影响浅复制的值,同时浅复制的值改变也并不会影响原来的值。原来值的id值与浅复制原来的值不同。

    第二种情况:复制的对象中 复杂 子对象(例如列表中的一个子元素是一个列表),改变原来的值中的复杂子对象的值,会影响浅复制的值。

  • 深拷贝deepcopy:

    完全复制独立,包括内层列表和字典

        

  • python变量可以分为两种类型:

        不可变类型:一旦创建就不可以修改的对象,包括:数组字符串元组

        可变类型:可以修改的对象,包括:列表字典

  • 直接赋值其实就是对象的引用(别名)

        

  • 切片:切片技术应用于所有的序列,包括:列表、字符串、元组。但切片不能应用与字典。对字典只能使用D.copy()方法或D.deepcopy()方法

                       

  • 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象

                   

  • 深拷贝(deepcopy):copy模块的deepcopy方法,完全拷贝了父对象及其子对象

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值