python学习笔记——列表在做extend,+=和+的时候对象的变化与内存分配

        有两个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
>>> 

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-10 07:41:47

python学习笔记——列表在做extend,+=和+的时候对象的变化与内存分配的相关文章

python学习笔记—列表相关

python中的列表等同于其他编程语言中的数组 基本操作有: 1.插入,追加,修改,删除 name = ["Type99","M1A2","T-72","Leclerc"] print (name[2]) print (name[0:2]) print (name[1:-1]) print (name) name.insert(2,"Type96") #插入元素 print (name) name.appe

python学习笔记——列表生成式与生成器

1.列表生成式(List Comprehensions) python中,列表生成式是用来创建列表的,相较于用循环实现更为简洁.举个例子,生成[1*1, 2*2, ... , 10*10],循环用三行: 1 L = [] 2 for i in range(1,11): 3 L.append(i*i) 列表生成式只用一行,前面是生成规则,后面是初始元素,最后还可以加上判断条件: 1 [i*i for i in range(1, 11)] 列表生成式还可以实现多层循环,以及判断,刚刚的栗子再写复杂一

python学习笔记列表和元组(三)

列表(list) 是Python以及其他语言中最常用到的数据结构之一.Python使用使用中括号 [ ] 来解析列表.列表是可变的(mutable)--可以改变列表的内容. 对应操作: 1.查([]切片操作) name = ['tom','张三','joker','李四'] print(name[2]) print(name[0:3]) print(name[0:7]) print(name[-1]) print(name[2:3]) print(name[0:3:1]) print(name[

python学习笔记——列表操作

python列表操作--增 append:追加一条数据到列表的最后 name = ["Zhangsan","XiongDa","Lisi"] name.append("wangwu") print name 输出结果: ['Zhangsan', 'XiongDa', 'Lisi', 'wangwu'] insert:指定位置插入一条数据 name = ["Zhangsan","XiongDa&qu

Python学习笔记#列表操作常用的函数

列表操作常用的两类函数: 1. 添加元素: append extend insert append主要是在列表的尾部添加一个元素: a = [1,2,3,4,5] a.append(6) 将得到: a = [1, 2, 3, 4, 5, 6] extend主要是在列表的尾部添加一些元素,这些元素只能用列表的形式添加: 错误实例: >>> a.extend(6,7) Traceback (most recent call last): File "<pyshell#3>

Python学习笔记 - 列表

# ----------------------------------------------------- # 创建列表 : [], 用方括号标识列表, 用逗号来分割元素 motorcycles = ['honada','yamaha','suzuki'] print(motorcycles) #['honada', 'yamaha', 'suzuki'] # ----------------------------------------------------- # 修改列表 : 列表[

Python 学习笔记 -- 列表的基本使用

1 #如何定义一个列表 2 print("#如何定义一个列表.") 3 list1 = [1,2,3,4,5,6] 4 print("list1 = %s \n\n\n" % str(list1)) 5 6 7 8 #如何添加.删除.访问链表中的元素 9 print("-------------------------------------------------\n#如何添加.删除.访问链表中的元素") 10 list1.append(&qu

Python 学习笔记 -- 文件的打开模式和文件的对象方法

1 #在Python中,如果想要操作一个文件,必须先得到文件的对象. 2 #实例一: 3 print("-------------------------------------------------------------------") 4 file = open("test.txt","wt") #这里我们使用open()函数来获取对象. 5 data = "这是一个用测试的文件!" 6 file.write(data

python学习笔记3:列表和元组

python学习笔记3:列表和元组 一.列表 list 总结:列表是可变变量,可以通过下标修改元素的值 1.定义列表 -- 中括号[ ] name=['Lily','Lucy','meimei'] 2.下标取值 --正负数均可 3.在列表中添加值 1)append() 方法,在列表末尾添加一个值 2)insert()方法,在列表指定位置添加一个值 3)extend()方法,把一个列表追加到一个列表的末尾            4.从列表中删除值 1)pop() 方法,默认删除最后一个元素,并且返