zoukankan      html  css  js  c++  java
  • 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更加稳定, 所以效率就高了。

  • 相关阅读:
    sqlalchemy 转json 的几种常用方式
    程序员的思维模型指南
    软件的本质
    Python数据模型及Pythonic编程
    Linux Kernel C语言编程范式
    U-Boot内存管理
    Linux网络文件系统的实现与调试
    Linux内核内存管理架构
    Linux多核并行编程关键技术
    Go/Python/Erlang编程语言对比分析及示例
  • 原文地址:https://www.cnblogs.com/itjiangpo/p/14181413.html
Copyright © 2011-2022 走看看