[toc]
列表元素的增加和删除
当列表增加和删除元素是, 列表会自动进行内存管理, 大大减少了程序员的负担. 但这个特点涉及列表元素的大量移动, 效率较低. 除非必要, 我们一般只在列表的尾部添加元素或删除元素, 这会大大提高列表的操作效率.
append() 方法
原地修改列表对象, 是真正的列表尾部添加新的元素, 速度最快, 推荐使用.
>>> a = [20, 40]
>>> a.append(80)
>>> a
[20, 40, 80]
+ 运算符操作
并不是真正的尾部添加元素, 而是创建新的对象. 将原列表的元素和新列表的元素一次复制到新的列表对象中. 这样会涉及大量的复制操作, 对于操作大量元素不建议使用.
>>> a = [20, 40]
>>> id(a)
46016072
>>> a = a + [50]
>> id(a)
46015432
通过如上测试, 我们发现变量 a 的地址发生了变化. 也就是创建了新的列表对象.
extend() 方法
将目标列表所有元素添加本列表的尾部, 属于原地操作, 不创建新的列表对象.
>>> a = [20, 40]
>>> id(a)
46016072
>>> a.extend([50,60])
>>> id(a)
46016072
insert() 插入元素
使用 insert() 方法可以将指定的元素插入到列表对象的任意制定位置. 这样会让插入位置后面所有的元素进行移动, 会影响处理速度. 涉及大量元素时,尽量避免使用. 类似发生这种移动的函数还有: remove(), pop(), del(), 它们在删除非尾部元素时也会发生操作位置后面元素的移动.