Python 中 list 和 deque 性能对比
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 性能对比相关推荐
- python中read() readline()以及readlines()对比(转)
该篇文章主要是记录python中操作文件的三个函数read(),readline()以及readlines()之间的区别. 首先先给出结论: .read() 每次读取整个文件,它通常将读取到底文件内容 ...
- python爬虫和golang爬虫性能对比_Scrapy VS Golang 爬虫对比(修正)
前言 之前写了一篇scrapy和golang爬虫性能对比,引起了很大的争议(就是被各位大佬喷的很惨的意思).其中,很多人提了数据库读写的问题,看到大家的评论后不久我又测了一下,把写数据库的那部分代码注 ...
- python 中的queue, deque
python3 deque(双向队列) 创建双向队列 import collections d = collections.deque() append(往右边添加一个元素) import colle ...
- python中uint8函数_NumPy性能:uint8对float和乘法对除法?
我刚刚注意到,我的脚本执行时间几乎减半,只需将乘法改为除法.在 为了调查这一点,我写了一个小例子:import numpy as np import timeit # uint8 array arr1 ...
- http中get和post性能对比
get和post在面试过程中一般都会问到,一般的区别: 1.post更安全(不会作为url的一部分,不会被缓存.保存在服务器日志.以及浏览器浏览记录中) 2.post发送的数据量更大(get有url长 ...
- [云炬python学习笔记]Numpy中内置函数min(),max(),sum()与Python中内置函数min(),max(),sum()性能对比分析
众所周知,Python有许多内置函数(例如min(),max(),sum()),Numpy也有自己的内置函数(np.min(),np.max(),np.sum()).由于Numpy的函数是在编译码中执 ...
- 【数据结构与算法】5. C++中 list、deque、vector对比
C++中list.deque以及vector对比 C++的容器类包括两大类: 1.顺序存储结构,包括vector.list.deque等等: 2.关联存储结构,包括set.map.multiset等等 ...
- python 速度 memmap_浅析Python 读取图像文件的性能对比
浅析Python 读取图像文件的性能对比 发布时间:2020-08-30 16:31:06 来源:脚本之家 阅读:57 作者:BriFuture''s Blog 使用 Python 读取一个保存在本地 ...
- python中if的效率_Python 代码性能优化技巧
选择了脚本语言就要忍受其速度,这句话在某种程度上说明了 python 作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在 performance 较差的机器上,因此有必要进行一定的代码优化 ...
最新文章
- SLF4J 的几种实际应用模式--之二:SLF4J+Logback
- RAC环境下的备份与恢复(四)
- hdu 1003 dp
- VIT自适应语音转文本可预测长度和内容(ocr也可)
- 个人JS体系整理(二)
- 发布在IIS的网站,可以用本机IP登录访问,用localhost不可登录访问
- 一个领导力培训的游戏练习
- SiteServer CMS 新版本 V6.15(2020年6月1日发布)
- java中412是什么错_HTTP 412 错误 – 先决条件失败 (Precondition failed)
- vs设计窗口不见了_碳纤维的巅峰:VS沛纳海616V3
- Linux系统格式化发fat32U盘密令,用diskpart命令格式化u盘为fat32的方法
- vagrant配置虚拟机网卡
- 用spring的InitializingBean的afterPropertiesSet来初始化
- Day 4 列表,元组,range
- 计算机视觉研究院总结了算法50经典面试题
- RocketMQ 监控平台搭建与项目引入
- HTML学生个人网站作业设计:动漫网站设计——梦幻西游(15页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
- 厦门大学437社会工作实务考研参考书目
- pandas的数据拼接与合并(concat、join、merge)
- 吃透一切整流滤波电路
热门文章
- 什么是 Redis ?
- 谷歌公布13GB 3D扫描数据集:17大类、1030个家用物品
- 2020计算机数电实验第四次(2)
- 236767服务器网站,南京前三的FIL服务器网站
- HTML设置背景图片填满整个页面
- ChemDraw 2D与ChemBio 3D之间的信息转换
- 第一章:Vue3.0+Openlayers+Cesium创建二三维联动项目
- 算法的时间与空间复杂度介绍
- mouseinfo的使用
- SpringBoot运行主程序报错:No subdirectories found for mandatory directory location ‘file:./config/*/‘.