python学习笔记——列表在做extend,+=和+的时候对象的变化与内存分配
来源:互联网 发布:淘宝在线人工客服在哪 编辑:程序博客网 时间:2024/05/12 19:40
有两个list的话用‘extend’,‘+=’和‘+’都可以实现两个列表的连接,但是他们在对象创建和内存分配上是有差别的。一开始Jia_Dai来告诉我‘extend’和‘+=’在对象创建上是不同的。但后来从yusheng_ding那里学会用id()函数查看变量的序号。实验证明‘extend’和‘+=’在连接列表的时候都没有创建新的对象,只是把后一列追加在前一列对象后面。而用‘+’实现的时候,会创建一个新的长对象,并把这个对象赋给‘=’左边的变量,就如下面代码所示。
>>> a_list = [1, 2, 3]>>> b_list = [4, 5, 6]>>> id(a_list)42037576>>> id(b_list)42039896>>> a_list.extend(b_list)>>> a_list[1, 2, 3, 4, 5, 6]>>> id(a_list)42037576>>> a_list += b_list>>> a_list[1, 2, 3, 4, 5, 6, 4, 5, 6]>>> id(a_list)42037576>>> a_list = a_list + b_list>>> a_list[1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6]>>> id(a_list)34419776>>>
0 0
- python学习笔记——列表在做extend,+=和+的时候对象的变化与内存分配
- JVM学习笔记-对象的内存分配
- python列表的append和extend
- 【JVM学习】Java的家园----JVM内存区域分析与对象的内存分配和访问
- c++学习笔记 动态内存分配 对象、对象数组的动态创建和释放
- python学习笔记5—序列与列表的操作
- c#在定义各种种类对象的时候分配内存的时机
- java语言基础(25)——面向对象(new对象的时候内存中发生了哪些变化)
- Python列表中append()方法与extend()方法的区别
- 黑马程序员-面向对象的理解以及Objective-C方法和对象分配内存的学习笔记
- Python List 对象的 append 和 extend 的区别
- java 对象的内存分配和回收
- Python 基础学习笔记2(List 的 append , extend方法)
- jq---在jq中如何扩充jQuery对象,$.fn.extend与$.extend的区别是什么?
- python 的 append 和 extend
- Python的extend()和append()
- python 语法笔记 - extend 和 append 保持列表层次
- list的extend()与append()的使用和区别 Python
- 黑马程序员_JAVA之异常、File类、递归
- 四川建筑技术中等专业学校
- Java 嵌套类和内部类示例<三>
- 高逼格UI-ASD(Android Support Design)
- 2015-07-12
- python学习笔记——列表在做extend,+=和+的时候对象的变化与内存分配
- 四川崇州电子职业技术学校
- MySQL复制简介和使用
- Android SharedPreferences 详解
- json字符串解析
- MongoDB 3.0 WT引擎参考配置文件
- 成都市建筑工程学校
- HDU 2099 整除的尾数
- 剑指offer《面试题5:从尾到头打印链表》