结论:

操作队尾元素时,速度差可忽略不计;

操作队头元素时,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的速度对比相关推荐

  1. python deque_python中deque类详解

    最近在pythonTip做题的时候,遇到了deque类,以前对其不太了解,现在特此总结一下 deque类是python标准库collections模块中的一项,它提供了两端都可以操作的序列,这意味着, ...

  2. Python容器专题 - deque(队列)--双向队列对象

    deque(队列)–双向队列对象 Deque队列是由栈或者queue队列生成的.列表也可以用作队列,其中先添加的元素被最先取出 ("先进先出"):普通列表的一个巨大缺陷在于,其往开 ...

  3. python队列(deque)

    collections.deque介绍 collections 是 python 内建的一个集合模块,里面封装了许多集合类,其中队列相关的集合只有一个:deque. deque 是双边队列(doubl ...

  4. Cython,Python,C/C++的运行速度对比

    关于Cython,Python,C/C++的运行速度的对比 测试环境: 处理器: AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx 2.10 GHz 机带: ...

  5. maya python 开根号,基于python不同开根号的速度对比分析

    我就废话不多说了,大家还是直接看代码吧~ import time import math import numpy as np def timeit1(): s = time.time() for i ...

  6. python deque双端队列的神奇用法

    python中的deque双端队列,类似list的任意一端都可实现较快的add和pop操作 from collections import dequed=deque(maxlen=20) for i ...

  7. 【上篇】Python实现最短路问题常见求解算法——Label Correcting Algorithm(deque)

    基于python语言,实现deque label correcting 算法对最短路问题(Shortest Path Problem)进行求解. 目录 1. 适用场景 2. 算法说明 3. 测试网络 ...

  8. Python实现最短路问题常见求解算法1——Label Correcting Algorithm(deque)

    原文链接 1. 适用场景 无负环网络 起点与终点间至少存在一条可行路径 可求解单一起点到多点的最短路径 2. 算法说明 应用标号法求解最短路问题时有两种选择,一是采用 label setting 策略 ...

  9. Python编程规范及性能优化

    为什么80%的码农都做不了架构师?>>>    Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器 ...

最新文章

  1. 移柯L620模组使用MQTT协议连接移动OneNet云平台(NB-IoT专栏—进阶篇3)
  2. matlab中step_使用MATLAB中bertool进行通信仿真
  3. vue写进html,vue中html页面写入$t(‘’)怎么显示
  4. 授于某个用户有写作业和调度作业的权限
  5. HTTP学习笔记:HTTP的消息结构
  6. ArcGIS案例学习笔记-找出最近距离的垂线
  7. struts2加入自定义的actionValidatorManager实现类
  8. git merge 冲突_卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?!
  9. 恭喜你,20级考研生!你将在考研前看到这篇最靠谱的学习方法!
  10. SCVMM 2012 R2---安装前的准备工作
  11. 477. 汉明距离总和
  12. JDK的问题:用C启动虚拟机跟java运行结果有差异
  13. 软件工程 第4版张海藩 pdf_2019年第4期软件工程造价师培训课程圆满结束
  14. vscode 经常弹出unins000.exe报错,尝试在目标目录创造文件时发生错误 重试 跳过这个文件 关闭安装程序
  15. R 语言 单位根检验
  16. python 隐藏命令行窗口_科学网—Windows下后台运行程序并隐藏cmd命令提示符窗口 - 周锋的博文...
  17. 前端企业级代码规范(巨详细)
  18. 关于用户输入密码的程序
  19. 抖音Flutter插件的使用
  20. Text to Speach文本转语音实现

热门文章

  1. SSIS - 1.简介
  2. VS2016 发布项目提示 CS0006 C# Metadata file 'xxxxxxx.dll' could not be found
  3. *****MBA数学备考良言一(chenjian)*****
  4. 返利网发布618数据:全网订单数量同比增幅超过30.37%
  5. 解决Module build failed: Error: Cannot find module ‘node-sass‘Require stack
  6. FSL 功能磁共振影像分析: single-session
  7. 哥尼斯堡的“七桥问题“(并查集)
  8. 船舶爬虫出现过的问题
  9. Windows7 半角全角快捷键 修改方法
  10. 国内外,网络安全厂商都有哪些?