python中对dict或list等可变对象进行append操作
来源:互联网 发布:天书世界阵法进阶数据 编辑:程序博客网 时间:2024/06/05 23:23
python append()与深拷贝、浅拷贝
深浅拷贝
在python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用。我们称之为浅拷贝。
在python中,为了使当进行赋值操作时,两个变量互补影响,可以使用copy模块中的deepcopy方法,称之为深拷贝。
append()函数
当对list类型或者dict等可变对象进行append操作时,实际上追加的是该对象的引用。
示例:
alist = []num = [2]alist.append( num )id( num ) == id( alist[0] )输出: True
如上例所示,当num发生变化时(前提是id(num)
不发生变化),alist的内容随之会发生变化。往往会带来意想不到的后果,想避免这种情况,可以采用深拷贝解决:
alist.append( copy.deepcopy( num ) )
PS:
id()函数:返回对象的唯一标识,可以类比成该对象在内存中的地址。
阅读全文
0 0
- python中对dict或list等可变对象进行append操作
- python中如何对dict对象进行排序
- Python中引用可变对象的变量进行操作
- PYTHON将list或/dict对象写入txt/json文件
- Python 函数默认参数不能使用可变对象,如List,dict
- python中 class 或对象属性转化成dict 、dict转换成对象
- python中 class 或对象属性转化成dict 、dict转换成对象
- python如何对list进行切片操作
- <Python> 递归展开嵌套列表等可迭代对象(list,dict,set...)
- 对List中对象属性进行排序
- python格式化输出dict等集合对象
- python set、list、dict常用操作
- python中的list、dict、string基本操作
- python list的append和extend操作
- JAVA中对LIST进行排序操作
- python中dict、tuple、set、list 等数据类型的浅显认识
- 【Python基础】之对字典进行排序操作(sort by the values of dict)
- python中dict和list排序
- Arbitrage POJ
- C#之System命名空间下的Console类
- 谈谈HashMap线程不安全的体现-resize死循环
- 连接虚拟机的Ubuntu
- android library 依赖出现的问题
- python中对dict或list等可变对象进行append操作
- PHP implode() 函数
- 2017/10/10模拟赛总结
- java中final关键字的作用
- Python学习笔记:一
- CentOS7 VMware虚拟机克隆 网卡无法启动问题解决
- 14.再论流程控制
- 学习java 临近毕业的迷茫期!
- Jekyll With Liquid