Python copy模块
来源:互联网 发布:iai电缸软件 编辑:程序博客网 时间:2024/05/17 22:16
python中的赋值一般是传递对象的引用,修改一个对象,会导致其他对象也受到改变
python的copy模块提供了拷贝的函数,可以进行浅拷贝和深拷贝
copy模块提供了两个函数:
copy.copy(x) 返回x的浅拷贝,只拷贝x对象,不拷贝x内部的子对象
copy.deepcopy(x) 返回x的深拷贝,拷贝x对象及其子对象
下面看段代码就知道区别在哪了:
import copysublist = ['a', 'b', 'c']mylist = list(range(6))mylist.append(sublist)mylist1 = copy.copy(mylist)mylist2 = copy.deepcopy(mylist)print('original ')print('mylist ', mylist)print('mylist1', mylist1)print('mylist2', mylist2)mylist.append(6)print("\nmylist append 6")print('mylist ', mylist)print('mylist1', mylist1)print('mylist2', mylist2)sublist.append('d')print("\nsublist append 'd'")print('mylist ', mylist)print('mylist1', mylist1)print('mylist2', mylist2)
输出的结果为:
original mylist [0, 1, 2, 3, 4, 5, ['a', 'b', 'c']]mylist1 [0, 1, 2, 3, 4, 5, ['a', 'b', 'c']]mylist2 [0, 1, 2, 3, 4, 5, ['a', 'b', 'c']]mylist append 6 mylist [0, 1, 2, 3, 4, 5, ['a', 'b', 'c'], 6]mylist1 [0, 1, 2, 3, 4, 5, ['a', 'b', 'c']]mylist2 [0, 1, 2, 3, 4, 5, ['a', 'b', 'c']]#可见mylist1,mylist2都是拷贝,修改原来的list,不会影响拷贝出来的listsublist append 'd' mylist [0, 1, 2, 3, 4, 5, ['a', 'b', 'c', 'd'], 6]mylist1 [0, 1, 2, 3, 4, 5, ['a', 'b', 'c', 'd']]mylist2 [0, 1, 2, 3, 4, 5, ['a', 'b', 'c']]#可见浅拷贝和深拷贝是有区别的,浅拷贝只是拷贝了list中子对象的引用,深拷贝拷贝了所有的子对象
1 0
- python模块 - copy模块
- python copy模块
- Python copy模块
- Python的copy模块
- python小模块-----copy 模块
- python模块系列之 - copy
- python中的copy模块理解
- Python模块学习系列(7)----copy模块
- python常用模块介绍之二:copy模块
- [Python模块学习]copy模块,设计模式中的原型模式
- copy 模块
- python中的copy模块(浅复制和深复制)
- [Python]copy模块学习 -- 深拷贝和浅拷贝
- python中的copy模块(浅复制和深复制)
- python中的copy模块(浅复制和深复制)
- Python中使用copy模块实现列表(list)拷贝
- Python中使用copy模块实现列表(list)拷贝
- python copy()
- OpenGL绘制球形相关学习
- 初步认识Internet
- Sublime Text3 快捷键汇总及设置快捷键配置环境变量
- 在struts2中加入java的web service示例
- 【Android】Android国际化
- Python copy模块
- 排序算法之快速排序
- windows + visual studio 2010 配置SVN
- Preconditions
- 在HTML中输出文本需要保留空格和换行符时需要加 <pre>
- 【机器学习基础】机器学习基础引入
- SearchView(二)
- 编译qtopia-2.2.0时出错
- TrustedInstaller权限的问题