python中列表的insert和append的效率对比

python中insert和append方法都可以向列表中插入数据只不过append默认插入列表的末尾,insert可以指定位置插入元素。

我们来测试一下他俩插入数据的效率;

测试同时对一个列表进行插入字符’ a ',插入10000次
先来insert的方式插入

import datetime
listA=[1,2,3]
startTime = datetime.datetime.now();
for i in range(0,10000):
    listA.insert(3,'a')

endTime = datetime.datetime.now();
print('+ 耗费',endTime-startTime);

print(listA)

使用append追加:

listB=[1,2,3]
startTime = datetime.datetime.now();
for i in range(0,10000):
    listB.append('a')

endTime = datetime.datetime.now();
print('append 耗费',endTime-startTime);
print(listB)

结果:
在这里插入图片描述
这里说一下自己的理解,如果理解的不对,敬请指出:
因为在python中的列表并不是真正意义上的链表,因为对于链表来讲插入和删除的效率是很高的, 并且链表的插入只需要修改指针的指向,这里的list可以用动态数组来理解, 数组按照索引来访问元素效率很高, 但是插入的时候需要将你插入位置的后面元素全都向后面移动必要的时候还需要再重新分配内存空间, 可能你这样会觉得insert和append就没什么区别了,但是从他们的返回值以及参数来讲, append默认插入到列表的最后,insert可以在指定位置上插入所以相比insert,append更加稳定, 所以效率就高了。

原文地址:https://www.cnblogs.com/itjiangpo/p/14181413.html