Python | List和Deque的速度对比
结论:
操作队尾元素时,速度差可忽略不计;
操作队头元素时,Deque远快于List
from collections import deque
from time import timedef test(num, struct, fun):sta = time()for _ in range(num):fun(struct)end = time()print("time cost: ", end - sta)
1 队尾插入元素---速度对比
num = int(1e7)
struct = list()
fun = lambda struct: struct.append(1)
test(num, struct, fun)time cost: 0.7700014114379883
num = int(1e7)
struct = deque()
fun = lambda struct: struct.append(1)
test(num, struct, fun)time cost: 0.6693985462188721
2 队尾弹出元素---速度对比
num = int(1e7)
struct = list(i for i in range(num))
fun = lambda struct: struct.pop()
test(num, struct, fun)time cost: 0.8014125823974609
num = int(1e7)
struct = deque(i for i in range(num))
fun = lambda struct: struct.pop()
test(num, struct, fun)time cost: 0.6997454166412354
3 队头插入元素---速度对比
num = int(1e5)
struct = list()
fun = lambda struct: struct.insert(0, 1)
test(num, struct, fun)time cost: 1.4022290706634521
num = int(1e5)
struct = deque()
fun = lambda struct: struct.appendleft(1)
test(num, struct, fun)time cost: 0.012262105941772461
num = int(1e5)
struct = deque()
fun = lambda struct: struct.insert(0, 1)
test(num, struct, fun)time cost: 0.00999760627746582
4 队头弹出元素---速度对比
num = int(1e5)
struct = list(i for i in range(num))
fun = lambda struct: struct.pop(0)
test(num, struct, fun)time cost: 9.153056383132935
num = int(1e5)
struct = deque(i for i in range(num))
fun = lambda struct: struct.popleft()
test(num, struct, fun)time cost: 0.007311344146728516
Python | List和Deque的速度对比相关推荐
- python deque_python中deque类详解
最近在pythonTip做题的时候,遇到了deque类,以前对其不太了解,现在特此总结一下 deque类是python标准库collections模块中的一项,它提供了两端都可以操作的序列,这意味着, ...
- Python容器专题 - deque(队列)--双向队列对象
deque(队列)–双向队列对象 Deque队列是由栈或者queue队列生成的.列表也可以用作队列,其中先添加的元素被最先取出 ("先进先出"):普通列表的一个巨大缺陷在于,其往开 ...
- python队列(deque)
collections.deque介绍 collections 是 python 内建的一个集合模块,里面封装了许多集合类,其中队列相关的集合只有一个:deque. deque 是双边队列(doubl ...
- Cython,Python,C/C++的运行速度对比
关于Cython,Python,C/C++的运行速度的对比 测试环境: 处理器: AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx 2.10 GHz 机带: ...
- maya python 开根号,基于python不同开根号的速度对比分析
我就废话不多说了,大家还是直接看代码吧~ import time import math import numpy as np def timeit1(): s = time.time() for i ...
- python deque双端队列的神奇用法
python中的deque双端队列,类似list的任意一端都可实现较快的add和pop操作 from collections import dequed=deque(maxlen=20) for i ...
- 【上篇】Python实现最短路问题常见求解算法——Label Correcting Algorithm(deque)
基于python语言,实现deque label correcting 算法对最短路问题(Shortest Path Problem)进行求解. 目录 1. 适用场景 2. 算法说明 3. 测试网络 ...
- Python实现最短路问题常见求解算法1——Label Correcting Algorithm(deque)
原文链接 1. 适用场景 无负环网络 起点与终点间至少存在一条可行路径 可求解单一起点到多点的最短路径 2. 算法说明 应用标号法求解最短路问题时有两种选择,一是采用 label setting 策略 ...
- Python编程规范及性能优化
为什么80%的码农都做不了架构师?>>> Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器 ...
最新文章
- 移柯L620模组使用MQTT协议连接移动OneNet云平台(NB-IoT专栏—进阶篇3)
- matlab中step_使用MATLAB中bertool进行通信仿真
- vue写进html,vue中html页面写入$t(‘’)怎么显示
- 授于某个用户有写作业和调度作业的权限
- HTTP学习笔记:HTTP的消息结构
- ArcGIS案例学习笔记-找出最近距离的垂线
- struts2加入自定义的actionValidatorManager实现类
- git merge 冲突_卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?!
- 恭喜你,20级考研生!你将在考研前看到这篇最靠谱的学习方法!
- SCVMM 2012 R2---安装前的准备工作
- 477. 汉明距离总和
- JDK的问题:用C启动虚拟机跟java运行结果有差异
- 软件工程 第4版张海藩 pdf_2019年第4期软件工程造价师培训课程圆满结束
- vscode 经常弹出unins000.exe报错,尝试在目标目录创造文件时发生错误 重试 跳过这个文件 关闭安装程序
- R 语言 单位根检验
- python 隐藏命令行窗口_科学网—Windows下后台运行程序并隐藏cmd命令提示符窗口 - 周锋的博文...
- 前端企业级代码规范(巨详细)
- 关于用户输入密码的程序
- 抖音Flutter插件的使用
- Text to Speach文本转语音实现
热门文章
- SSIS - 1.简介
- VS2016 发布项目提示 CS0006 C# Metadata file 'xxxxxxx.dll' could not be found
- *****MBA数学备考良言一(chenjian)*****
- 返利网发布618数据:全网订单数量同比增幅超过30.37%
- 解决Module build failed: Error: Cannot find module ‘node-sass‘Require stack
- FSL 功能磁共振影像分析: single-session
- 哥尼斯堡的“七桥问题“(并查集)
- 船舶爬虫出现过的问题
- Windows7 半角全角快捷键 修改方法
- 国内外,网络安全厂商都有哪些?