当列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担。但这
个特点涉及列表元素的大量移动,效率较低。除非必要,我们一般只在列表的尾部添加元素
或删除元素,这会大大提高列表的操作效率。
一、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]
转载于:https://www.jianshu.com/p/8db1eaedf1f7