P34-列表-元素的五种添加方式-效率问题
列表元素的增加和删除
当列表增加和删除元素的时候,列表会自动进行内存管理,大大减少了程序员的复旦,但是这个特点涉及列表元素的大量的移动,效率较低,除非必要,我们一般只在列表的尾部添加或者删除元素,这样会大大提高列表的操作效率
append()方法
原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使用
>>>a=[20,40]>>>a.append(100)>>>a[20,40,100]
+运算符操作
并不是真正的尾部添加元素,而是创建新的列表对象,将原来列表的元素和新列表的元素依次复制到新的列表对象当中,这样会涉及大量的复制操作,对于操作大量元素不建议使用。
>>>a=[20,40]>>>id(a)46016072>>>a=a+[50]>>>id(a)46015432
extend()方法
将目标列表的所有的元素添加到本列表的尾部,属于原地操作,不创建新的列表对象
>>>a=[20,40]>>>id(a)46016072>>>a.extends([50,60])>>>id(a)46016072
insert()插入元素
使用insert()方法可以将指定元素插入到列表的任意指定的位置,这样会让插入位置后面的所有的元素进行移动,会影响处理的速度,涉及到大量的元素的时候,尽量避免使用,类似发生这种移动的元素还有:remove(),pop(),del()他们在删除非尾部元素的时候也会发生操作位置后元素的移动
>>>a=[10,20,30]>>>a.insert(2,100)>>>a[10,20,100,30]
乘法扩展
使用乘法扩展列表,生成一个新的列表,新的列表元素的时候,原列表元素的多次的重复
>>>a=['sxt',100]>>>b=a*3['sxt',100]>>>b['sxt',100,'sxt',100,'xt',100]
P35列表-元素删除的三种方式-删除本质
列表元素的删除
del 删除
删除列表指定位置的元素
>>> a=[10,20,30]>>> del a[1]>>> a[10,30]
实际上也是数组的拷贝
插入操作也是一样的,反过来理解就可以了
pop()方法
pop()删除并返回指定位置的元素,如果没有指定位置就默认操作列表最后一个元素
>>>a=[10,20,30,40,50]>>>b=a.pop()>>>b50>>>>a[10,20,30,40]>>>a.pop(1)20>>>a[10,30,40]
remove()方法
删除首次出现的指定元素,如果不存在该元素则抛出异常
>>>a=[10,20,30,40,50,20,30,20,30]>>>a.remove(20)>>>a[10,30,40,50,20,30,20,30]>>>a.remove(100)Tracback (most recent call last): File"",line1,in a.remove(100)ValueError:list.remove(x):x not in list
欢迎打赏,么么哒!
●R语言
●句子
●JAVA
●C语言以及算法笔记
●大学生生活图鉴
●JavaScript
●计算机网络原理
●计算机组成原理
●操作系统
●数据库系统概论
●数据结构
●英语
●Linux
●数字图像处理
●云计算与人工智能
●资源
●明星电视剧社会现象娱乐
Python
仙女都在看点点点,赞和在看都在这儿!