当前位置: 首页 > news >正文

详细分析python 中的deque 以及和list 的用法区别

dqque :双端队列,可以快速的从另外一侧追加和推出对象,deque是一个双向链表,针对list连续的数据结构插入和删除进行优化。它提供了两端都可以操作的序列,这表示在序列的前后你都可以执行添加或删除操作。

通过上图可以看出,deque 需要两个参数,iterable.可迭代对象;maxlen:个数

我现在有一个需求,要求有一个数组,长度为5 ,每次都更新插入,将旧的删除。接下来对比一下,采用deque 和list 两种方式:

from collections import deque

import time

# 采用双向队列,采用.append()插入,会自动将最左边的的删除

time0 = time.time()

# 初始化due

dq = deque([1,2,3,4,5],maxlen=5)

print(dq)

dq.append(6)

print(dq)

time1 = time.time()

print('deque插入所用时间',time1-time0)

#------------采用列表方式,先append 插入,在使用.pop(0)删除-----------------

list = [1,2,3,4,5]

list.append(6)

list.pop(0)

print(list)

time2 = time.time()

print('list插入所用时间',time2-time1)

# 结果输出

deque([1, 2, 3, 4, 5], maxlen=5)
deque([2, 3, 4, 5, 6], maxlen=5)
deque插入所用时间 0.0002040863037109375
[2, 3, 4, 5, 6]
list插入所用时间 0.0014698505401611328

我们发现,使用deque 的方式不仅代码量减少,而且所用时间也比list的方式要高效。

http://www.dtcms.com/a/192006.html

相关文章:

  • 【深度剖析】安踏体育的数字化转型(上篇1)
  • 嵌入式学习的第二十一天-数据结构-双向链表
  • js关于number类型的计算问题
  • RabbitMQ工作流程及使用方法
  • c/c++消息队列库RabbitMQ的使用
  • 动态库和静态库的区别
  • 以项目的方式学QT开发(二)
  • 哲学物理:太极图和莫比乌斯环有什么关系?
  • OkHttp用法-Java调用http服务
  • 【Linux系列】Linux 系统下 SSD 磁盘识别
  • 【油藏地球物理正演软件ColchisFM】基于数据驱动的油藏参数叠前地震反演研究进展
  • 操作系统学习笔记第3章 内存管理(灰灰题库)
  • javaSE.QueueDeque
  • python打卡打印26
  • Git 常用命令详解
  • 进程替换讲解
  • 【day01】 Chroma 核心操作流程
  • IT系统的基础设施:流量治理、服务治理、资源治理,还有数据治理。
  • 部署安装jenkins.war(2.508)
  • 练习小项目2:今日幸运颜色生成器
  • 【ALINX 实战笔记】FPGA 大神 Adam Taylor 使用 ChipScope 调试 AMD Versal 设计
  • 在Angular中使用Leaflet构建地图应用
  • 一招解决Tailwindcss4.x与其他库样式冲突问题
  • Scrapy框架下地图爬虫的进度监控与优化策略
  • 16.2 VDMA视频转发实验之模拟源
  • [Java实战]Spring Boot 3实现 RBAC 权限控制(二十五)
  • C# 实现雪花算法(Snowflake Algorithm)详解与应用
  • C++篇——多态
  • 知从科技闪耀2025上海车展:以创新驱动未来出行新篇章
  • redis解决常见的秒杀问题