python中的复制

python中的复制
2019-4-20

python中的拷贝

浅拷贝: 对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝,此为浅拷贝。

深拷贝: 对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,此为深拷贝。

在python中有三种复制方式:

  • 直接赋值:b = a , 这种方式实质上为引用,即内存上b和a表示同一块内存的内容。
  • 浅拷贝:b = copy.copy(a)b = a.copy(), 将父对象a拷贝到b,但是父对象内部的子对象拷贝的是引用。
  • 深拷贝:b = copy.deepcopy(a),将父对象a和a内部的子对象都拷贝到b中,a和b在内存上相互独立。

菜鸟教程中给了关于上面三种很形象的图示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import copy

a = [1,2,3,['a','b']]
b = a                     #引用
c = copy.copy(a)          #浅拷贝,将a子对象['a','b']的引用传递给c,此时a[3]和c[3]的地址不同,但是它们指向了同一块内存的内容。
d = copy.deepcopy(a)      #深拷贝

a.append(5)
print(" a:",a,
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值