千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:深圳千锋IT培训  >  技术干货  >  python 列表元素的增加

python 列表元素的增加

来源:千锋教育
发布人:xqq
时间: 2023-11-06 17:14:12

可以使用“+”运算符将元素添加到列表中。

>>>aList=[3,4,5]

>>>aList=aList+[7]

>>>aList

[3,4,5,7]

严格意义上来讲,这并不是真的为列表添加元素,而是创建了一个新列表,并将原列表中的元素和新元素依次复制到新列表的内存空间。由于涉及大量元素的复制,该操作速度较慢,在涉及大量元素添加时不建议使用该方法。

使用列表对象的append()方法在当前列表尾部追加元素,原地修改列表,是真正意义上的在列表尾部添加元素,速度较快。

>>>aList.append(9)

>>>aList

[3,4,5,7,9]

所谓“原地”,是指不改变列表在内存中的首地址。

python采用的是基于值的自动内存管理方式,当为对象修改值时,并不是真的直接修改变量的值,而是使变量指向新的值,这对于Python所有类型的变量都是一样的。

>>>a=[1,2,3]

>>>id(a)#返回对象的内存地址

20230752

>>>a=[1,2]

>>>id(a)

20338208

列表中包含的是元素值的引用,而不是直接包含元素值。

如果是直接修改序列变量的值,则与Python普通变量的情况是一样的

如果是通过下标来修改序列中元素的值或通过可变序列对象自身提供的方法来增加和删除元素时,序列对象在内存中的起始地址是不变的,仅仅是被改变值的元素地址发生变化,也就是所谓的“原地操作”。

>>>a=[1,2,4]

>>>b=[1,2,3]

>>>a==b

False

>>>id(a)==id(b)

False

>>>id(a[0])==id(b[0])

True

>>>a=[1,2,3]

>>>id(a)

25289752

>>>a.append(4)

>>>id(a)

25289752

>>>a.remove(3)

>>>a

[1,2,4]

>>>id(a)

25289752

>>>a[0]=5

>>>a

[5,2,4]

>>>id(a)

25289752

使用列表对象的extend()方法可以将另一个迭代对象的所有元素添加至该列表对象尾部。通过extend()方法来增加列表元素也不改变其内存首地址,属于原地操作。

>>>a.extend([7,8,9])

>>>a

[5,2,4,7,8,9]

>>>id(a)

25289752

>>>aList.extend([11,13])

>>>aList

[3,4,5,7,9,11,13]

>>>aList.extend((15,17))

>>>aList

[3,4,5,7,9,11,13,15,17]

使用列表对象的insert()方法将元素添加至列表的指定位置。

>>>aList.insert(3,6)#在下标为3的位置插入元素6

>>>aList

[3,4,5,6,7,9,11,13,15,17]

应尽量从列表尾部进行元素的增加与删除操作。

列表的insert()可以在列表的任意位置插入元素,但由于列表的自动内存管理功能,insert()方法会引起插入位置之后所有元素的移动,这会影响处理速度。

类似的还有后面介绍的remove()方法以及使用pop()函数弹出列表非尾部元素和使用del命令删除列表非尾部元素的情况。

importtime

defInsert():

a=[]

foriinrange(10000):

a.insert(0,i)

defAppend():

a=[]

foriinrange(10000):

a.append(i)

start=time.time()

foriinrange(10):

Insert()

print('Insert:',time.time()-start)

start=time.time()

foriinrange(10):

Append()

print('Append:',time.time()-start)

上面代码运行结果如下:

Insert:0.578000068665

Append:0.0309998989105

使用乘法来扩展列表对象,将列表与整数相乘,生成一个新列表,新列表是原列表中元素的重复。

>>>aList=[3,5,7]

>>>bList=aList

>>>id(aList)

57091464

>>>id(bList)

57091464

>>>aList=aList*3

>>>aList

[3,5,7,3,5,7,3,5,7]

>>>bList

[3,5,7]

>>>id(aList)

57092680

>>>id(bList)

57091464

当使用*运算符将包含列表的列表重复并创建新列表时,并不是复制子列表值,而是复制已有元素的引用。因此,当修改其中一个值时,相应的引用也会被修改。

>>>x=[[None]*2]*3

>>>x

[[None,None],[None,None],[None,None]]

>>>x[0][0]=5

>>>x

[[5,None],[5,None],[5,None]]

>>>x=[[1,2,3]]*3

>>>x[0][0]=10

>>>x

[[10,2,3],[10,2,3],[10,2,3]]

以上内容为大家介绍了python列表元素的增加,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

python列表的优点探究

2023-11-14

pythonStringIO的读写

2023-11-14

pythonfrom…import的导入注意

2023-11-14

最新文章NEW

python收集参数是什么?

2023-11-14

pythondict.setdefault()在python中设置默认值

2023-11-14

pythoninsort的使用

2023-11-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>