Python全系列 教程
3567个小节阅读:5931.8k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
当列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担。但这个特点涉及列表元素的大量移动,效率较低。
⚠️除非必要,我们一般只在列表的尾部添加元素或删除元素,这会大大提高列表的操作效率。
原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使用。
xxxxxxxxxx
a = [20,40]
a.append(80)
print(a) #结果:[20, 40, 80]
并不是真正的尾部添加元素,而是创建新的列表对象;将原列表的元素和新列表的元素依次复制到新的列表对象中。这样,会涉及大量的复制操作,对于操作大量元素不建议使用。
xxxxxxxxxx
a = [20,40]
print(id(a))
a = a+[50]
print(id(a)) #两次地址不一样,创建了新的对象
通过如上测试,我们发现变量a的地址发生了变化。也就是创建了新的列表对象。
将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。
xxxxxxxxxx
a = [20,40]
print(id(a))
b = [50,60]
a.extend(b) #原对象修改
print(id(a))
a = a+b #产生新对象
print(id(a))
使用insert()
方法可以将指定的元素插入到列表对象的任意制定位置。这样会让插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove()
、pop()
、del()
,它们在删除非尾部元素时也会发生操作位置后面元素的移动。
xxxxxxxxxx
a = [10,20,30]
a.insert(2,100)
print(a) #结果:[10, 20, 100, 30]
使用乘法扩展列表,生成一个新列表,新列表元素是原列表元素的多次重复。
xxxxxxxxxx
a = ['sxt',100]
b = a*3
print(a) #结果:['sxt', 100]
print(b) #结果:['sxt', 100, 'sxt', 100, 'sxt', 100]
适用于乘法操作的,还有:字符串、元组。例如:
xxxxxxxxxx
c = 'sxt'
d = c*3 #结果:'sxtsxtsxt'
实时效果反馈
1. 在列表[10,20,30]后添加元素40,如下代码,正确并且速度最快的是:
A [10,20,30]+[40]
B [10,20,30]*40
C [10,20,30].append(40)
D [10,20,30].insert(2,40)
答案
1=>C