Python:浅拷贝与深拷贝copy.deepcopy()
来源:互联网 发布:数据库的报表 编辑:程序博客网 时间:2024/06/07 11:42
Python中,对象的赋值实际上是简单的对象引用。也就是说,当你创建一个对象,然后把它复制给另一个变量的时候,Python并没有拷贝这个对象,而是拷贝了这个对象的引用。
如果用C语言的角度,相当于只是将地址进行了传递,虽然两个变量名不一样,但是实际的地址却是一样的。
但Python并没有引入有关地址的概念,而是用的id(跟C语言的地址是一个意思,只不过不是底层的东西而已)
我写过的一个算法中打算把一个列表复制到另一个列表中:
unvisited = data
但是当我操作unvisited的时候,发现data也变化了,也就是说,他们虽然名字不一样,但是所指向的列表是完全一样的。
怎么办?
Python使用了“深拷贝”来解决这个问题:(那么原来错误的办法自然就是“浅拷贝”)
import copyunvisited = copy.deepcopy(data)
使用这种办法就能将数据完全复制,他们的id也肯定不一样了,不管怎么操作unvisited,data都不受影响
0 0
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
- Python copy()与deepcopy()区别,深拷贝与浅拷贝
- Python:浅拷贝与深拷贝copy.deepcopy()
- python的深拷贝deepcopy与浅拷贝copy
- 深拷贝deepcopy与浅拷贝copy
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
- Python拷贝对象(浅拷贝copy与深拷贝deepcopy)
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
- python浅拷贝和深拷贝 copy()和deepcopy()
- [Python]理解Python深拷贝DeepCopy与浅拷贝ShallowCopy
- Python高级之——浅拷贝、深拷贝(deepcopy、copy的区别)
- 拷贝 copy()和deepcopy()
- 【学习】webApp里 rem的用法
- windows cluster常见命令
- Unity AssetBundles 使用指南
- Primitive Roots(Poj1284)(欧拉函数+原根)
- Linux权限——用户权限修改
- Python:浅拷贝与深拷贝copy.deepcopy()
- Android Studio 一 安装
- linux交换分区
- sass安装
- 【杭电oj】2028-Lowest Common Multiple Plus(最小公倍数)(水)
- iOS---通知传值的使用
- java中的数组
- 01背包
- 第十六周实践—归并排序算法的改进