Five kinds of ways to add a list of elements _ _ Efficiency

当列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担。但这
个特点涉及列表元素的大量移动,效率较低。除非必要,我们一般只在列表的尾部添加元素
或删除元素,这会大大提高列表的操作效率。

一、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]

Reproduced in: https: //www.jianshu.com/p/8db1eaedf1f7

Guess you like

Origin blog.csdn.net/weixin_34391854/article/details/91259712