Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)

本文详细介绍了Python中对象拷贝的概念及应用,包括浅拷贝与深拷贝的区别,并通过实例展示了不同拷贝方式的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。 

  1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。通俗点就是部分拷贝
  2. copy.deepcopy 深拷贝 拷贝对象及其子对象,通俗点就是完全拷贝

 1  =  [ " 1 " , " 2 " , " 3 " ,[ ' a ' , ' b ' ]]
 2  =  a  # 引用
 3 
 4  c = copy.copy(a) # 浅拷贝
 5 
 6  =  copy.deepcopy(a)  # 深度拷贝
 7 
 8  a.remove( " 1 " )
 9  a[ 2 ].append( ' c ' )
10 
11  print  a
12  print  b
13  print  c
14  print  c
15 
16  运行结果:
17  [ ' 2 ' ' 3 ' , [ ' a ' ' b ' ' c ' ]]
18  [ ' 2 ' ' 3 ' , [ ' a ' ' b ' ' c ' ]]
19  [ ' 1 ' ' 2 ' ' 3 ' , [ ' a ' ' b ' ' c ' ]]
20  [ ' 1 ' ' 2 ' ' 3 ' , [ ' a ' ' b ' ]]   

我们可以看到,与c语言不同的是,=后不是两个不同的值,而是一个引用的值。要注意。。

作者: xiaoxia

出处:http://cnblogs.com/xiaoxia

我的淘宝:http://shop62115161.taobao.com/

本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。

 

 

转载于:https://www.cnblogs.com/xiaoxia/archive/2010/08/04/1789041.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值