python性能分析——insert()

Posted cxc1357

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python性能分析——insert()相关的知识,希望对你有一定的参考价值。

我们在list中插入数据时,经常使用这两个函数:

append():在列表的末尾增加一个数据

insert():在某个特定位置前加一个数据

Python内的list实现是通过数组实现的,而不是链表的形式,所以每当执行insert()操作时,都要将插入位置的元素向后移动才能在相应的位置插入元素,执行append()操作时,如果分配的空间还足够大的话那么就可以直接插到最后,如果空间不够的话就需要将已有的数据复制到一片更大的空间后再插入新元素,insert()空间不够的话也是同样

所以,在使用insert()时,要特别注意性能问题,如:

例1:

a = []
for i in range(n):
    a.insert(0,s)

例2:

a = []
for i in range(n):
    a.insert(i,s)

一字之差,例1的时间复杂度为O(n^2),例2为O(n)

 

以上是关于python性能分析——insert()的主要内容,如果未能解决你的问题,请参考以下文章

35. (Search Insert Position)搜索插入位置

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段

sys.path.insert

python [代码片段]一些有趣的代码#sort