当列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担。但这
个特点涉及列表元素的大量移动,效率较低。除非必要,我们一般只在列表的尾部添加元素
或删除元素,这会大大提高列表的操作效率。
一、append()方法
原地修改列表对象{不会创建新的对象},在列表尾部追加新的元素,速度最快,推荐使用
a = [10,20]
a.append(30)
print(a) #结果:[10,20,30]
二、+运算符操作
并不是真正的尾部添加元素,而是创建新的列表对象;将原列表的元素和新列表的元素依次
复制到新的列表对象中。这样,会涉及大量的复制操作,对于操作大量元素不建议使用
a = [10,20]
print(id(a)) #结果:1873487337992
a=a + [30]
print(id(a)) #结果:1873487338888
print(a) #结果:[10, 20, 30]
三、extend()方法
将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象
a = [10,20]
print(id(a)) #结果:2255790873096
a.extend([30,40])
print(id(a)) #结果:2255790873096
print(a) #结果:[10, 20, 30,40]
四、insert()方法
使用 insert()方法可以将指定的元素插入到列表对象的任意指定位置。这样会让插入位置后
面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种
移动的函数还有:remove()、pop()、del(),它们在删除非尾部元素时也会发生操作位置后
面元素的移动。
a = [1,2,3,4,5,6]
a.insert(2,10)
print(a) #结果:[1, 2, 10, 3, 4, 5, 6];在索引2的位置上插入新的元素10
五、乘法扩展
使用乘法扩展列表,生成一个新列表,新列表元素时原列表元素的多次重复
b = [10,20]
c = b*3
print(c) #结果:[10, 20, 10, 20, 10, 20]
六、删除列表元素
alist=[1,2,3,2,4,5,9,6,7,8,9]
alist.remove(9) #指定元素删除,从索引0开始第一个匹配上的删除
结果:[1,2,3,2,4,5,6,7,8,9]
alist.pop(3) #指定索引位置删除,且返回要删除的元素
结果:[1,2,3,4,5,9,6,7,8,9]
alist.pop() #默认删除最后一个元素
del alist[2] #指定索引位置删除
结果:[1,2,2,4,5,9,6,7,8,9]
列表_元素的5种添加方式_效率问题
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。