提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Python 列表几种操作方法--效率问题
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、append()方法
append()方法是在列表尾部添加新的元素,只是对对象进行了修改,没有创建新的对象,所以速度很快,推荐使用。
>>>list_1=[1]
>>>id(list_1)
53270408L
>>>list_1.append(2)
>>>>list_1
[1,2]
>>>id(list_1)
53270408L
通过如上测试,我们发现变量list_1的地址没有发生变化,是同一个列表对象。
二、+运算符
代码如下(示例):
>>>list_1=[1,2,3]
>>>list_2=[4,5,6]
>>>list_1=list_1+list_2
>>>list_1
[1,2,3,4,5.6]
此方法从结果上看,也是在尾部添加了新元素,实际上并不是真正的尾部添加元素,而是创建了新的列表对象,将原列表的元素和新列表的元素依次
复制到新的列表对象中。这样,会涉及大量的复制操作,对于操作大量元素不建议使用。
>>>list_1=[1,2,3]
>>>id(list_1)
52550472L
>>>list_2=[4,5,6]
>>>list_1=list_1+list_2
>>>id(list_1)
>52499400L
通过如上测试,我们发现变量list_1的地址发生了变化,也就是创建了新的列表对象。
三、extend()方法
将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象,效率高,推荐使用。
代码如下(示例):
>>>list_1=['a','s']
>>>list_2=['d','f']
>>>id(list_1)
53220296L
>>>list_1.extend(list_2)
>>>id(list_1)
53220296L
注意append()和extend()方法区别:
(1) append(object) 是将一个对象作为一个整体添加到列表中,添加后的列表比原列表多一个元素,该函数的参数可以是任何类型的对象,该函数没有返回值。
(2) extend(iterable) 是将一个可迭代对象中的每个元素逐个地添加到列表中,可迭代对象中有几个元素,添加后的列表就比原列表多几个元素,该函数的参数必须是可迭代的对 象,改函数没有返回值。
四、insert()插入元素
使用insert()方法可以将指定的元素插入到列表对象的任意制定位置。这样会让插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时尽量避免使用。类似发生这种移动的函数还有:remove()、pop()、del(),它们在删除非尾部元素时也会发生操作位置后面元素的移动。
>>>list_1=[1,2,4]
>>>>id(list_1)
46913416L
>>>list_1.insert(2,34)
>>>list_1
[1, 2, 34, 4]
>>>id(list_1)
46913416L