list 与 deque 的性能对比如下,deque 比 list 快了将近一倍。

In [1]: from collections import dequeIn [2]: s = list(range(1000))In [3]: d = deque(s)In [4]: s_append, s_pop = s.append, s.popIn [5]: d_append, d_pop = d.append, d.popIn [6]: %timeit s_pop(); s_append(None)
10000000 loops, best of 3: 115 ns per loopIn [7]: %timeit d_pop(); d_append(None)
10000000 loops, best of 3: 70.5 ns per loop
  • deque 的 appendleft() 和 popleft() 的时间复杂度为 O(1)
  • list 的 insert(0, value) 和 pop() 的时间复杂度为 O(n)

列表追加性能好坏不定,因为它使用了realloc()。

因此,往往在简单代码中列表的性能不算太差(因为 realloc 内存分配机制不需要移动数据),而在实际应用代码中计时非常慢(因为 realloc 机制会移动所有数据)。

相比之下,deque的附加性能是一致的,因为它从不重新分配内存和移动数据。

Python 中 list 和 deque 性能对比相关推荐

  1. python中read() readline()以及readlines()对比(转)

    该篇文章主要是记录python中操作文件的三个函数read(),readline()以及readlines()之间的区别. 首先先给出结论: .read() 每次读取整个文件,它通常将读取到底文件内容 ...

  2. python爬虫和golang爬虫性能对比_Scrapy VS Golang 爬虫对比(修正)

    前言 之前写了一篇scrapy和golang爬虫性能对比,引起了很大的争议(就是被各位大佬喷的很惨的意思).其中,很多人提了数据库读写的问题,看到大家的评论后不久我又测了一下,把写数据库的那部分代码注 ...

  3. python 中的queue, deque

    python3 deque(双向队列) 创建双向队列 import collections d = collections.deque() append(往右边添加一个元素) import colle ...

  4. python中uint8函数_NumPy性能:uint8对float和乘法对除法?

    我刚刚注意到,我的脚本执行时间几乎减半,只需将乘法改为除法.在 为了调查这一点,我写了一个小例子:import numpy as np import timeit # uint8 array arr1 ...

  5. http中get和post性能对比

    get和post在面试过程中一般都会问到,一般的区别: 1.post更安全(不会作为url的一部分,不会被缓存.保存在服务器日志.以及浏览器浏览记录中) 2.post发送的数据量更大(get有url长 ...

  6. [云炬python学习笔记]Numpy中内置函数min(),max(),sum()与Python中内置函数min(),max(),sum()性能对比分析

    众所周知,Python有许多内置函数(例如min(),max(),sum()),Numpy也有自己的内置函数(np.min(),np.max(),np.sum()).由于Numpy的函数是在编译码中执 ...

  7. 【数据结构与算法】5. C++中 list、deque、vector对比

    C++中list.deque以及vector对比 C++的容器类包括两大类: 1.顺序存储结构,包括vector.list.deque等等: 2.关联存储结构,包括set.map.multiset等等 ...

  8. python 速度 memmap_浅析Python 读取图像文件的性能对比

    浅析Python 读取图像文件的性能对比 发布时间:2020-08-30 16:31:06 来源:脚本之家 阅读:57 作者:BriFuture''s Blog 使用 Python 读取一个保存在本地 ...

  9. python中if的效率_Python 代码性能优化技巧

    选择了脚本语言就要忍受其速度,这句话在某种程度上说明了 python 作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在 performance 较差的机器上,因此有必要进行一定的代码优化 ...

最新文章

  1. SLF4J 的几种实际应用模式--之二:SLF4J+Logback
  2. RAC环境下的备份与恢复(四)
  3. hdu 1003 dp
  4. VIT自适应语音转文本可预测长度和内容(ocr也可)
  5. 个人JS体系整理(二)
  6. 发布在IIS的网站,可以用本机IP登录访问,用localhost不可登录访问
  7. 一个领导力培训的游戏练习
  8. SiteServer CMS 新版本 V6.15(2020年6月1日发布)
  9. java中412是什么错_HTTP 412 错误 – 先决条件失败 (Precondition failed)
  10. vs设计窗口不见了_碳纤维的巅峰:VS沛纳海616V3
  11. Linux系统格式化发fat32U盘密令,用diskpart命令格式化u盘为fat32的方法
  12. vagrant配置虚拟机网卡
  13. 用spring的InitializingBean的afterPropertiesSet来初始化
  14. Day 4 列表,元组,range
  15. 计算机视觉研究院总结了算法50经典面试题
  16. RocketMQ 监控平台搭建与项目引入
  17. HTML学生个人网站作业设计:动漫网站设计——梦幻西游(15页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
  18. 厦门大学437社会工作实务考研参考书目
  19. pandas的数据拼接与合并(concat、join、merge)
  20. 吃透一切整流滤波电路

热门文章

  1. 什么是 Redis ?
  2. 谷歌公布13GB 3D扫描数据集:17大类、1030个家用物品
  3. 2020计算机数电实验第四次(2)
  4. 236767服务器网站,南京前三的FIL服务器网站
  5. HTML设置背景图片填满整个页面
  6. ChemDraw 2D与ChemBio 3D之间的信息转换
  7. 第一章:Vue3.0+Openlayers+Cesium创建二三维联动项目
  8. 算法的时间与空间复杂度介绍
  9. mouseinfo的使用
  10. SpringBoot运行主程序报错:No subdirectories found for mandatory directory location ‘file:./config/*/‘.