Python学习之旅:进阶阶段(五)数据结构-双端队列(collections.deque)

ops/2025/2/3 4:00:08/

  在 Python 的进阶学习过程中,数据结构的掌握至关重要。今天要介绍的双端队列(deque,即 double-ended queue),是一种非常实用的数据结构,Python 的collections模块中的deque类为我们提供了强大的双端队列操作功能。接下来,就一起深入了解双端队列吧。

一、什么是双端队列

  双端队列,从名字就能看出它的特点,它是一种特殊的队列,允许我们在队列的两端进行插入和删除操作。普通队列就像排队买票,只能从队尾加入,从队头离开;而双端队列则像是一个可以双向进出的旋转门,两端都能进行人员的进出,非常灵活。

二、为什么要使用双端队列

  在很多场景下,双端队列都能发挥出独特的优势。比如在处理需要频繁在两端进行数据操作的场景时,使用双端队列可以避免复杂的索引计算和数据移动,大大提高操作效率。像实现一个简单的历史记录功能,新的记录可以添加到队尾,而最近访问的记录又可以从队首获取,双端队列就能轻松实现。

三、collections.deque 模块介绍

  collections.deque是 Python 标准库collections模块中的一个类,专门用于创建和操作双端队列。下面来看看它的一些常用操作。

(一)创建双端队列

  使用collections.deque()可以创建一个空的双端队列,也可以传入一个可迭代对象(如列表、元组等)来初始化双端队列。例如:

python">from collections import deque
# 创建空双端队列
my_deque = deque()
# 使用列表初始化双端队列
my_deque = deque([1, 2, 3])

(二)添加元素

  在队尾添加元素:使用append()方法可以在双端队列的末尾添加一个元素。

python">from collections import deque
my_deque = dequ

http://www.ppmy.cn/ops/155212.html

相关文章

Brave132 编译指南 Windows 篇:部署 Node.js(五)

1. 引言 在 Brave 浏览器 132 版本的编译过程中,Node.js 扮演着至关重要的角色。作为一个基于 Chrome V8 引擎构建的 JavaScript 运行时环境,Node.js 赋予了开发者在服务器端执行 JavaScript 代码的能力。其非阻塞、事件驱动的架构使其特别擅长构建高性…

DeepSeek文生图模型Janus-Pro论文解读 —— 多模态AI的革命?

介绍 整个AI行业仍在适应最近发布的、震惊人工智能领域的 DeepSeek-R1。1月28日除夕当天的凌晨,DeepSeek 又发布了另一款出色的开源模型 Janus-Pro。这一次,它是一款能与其他顶级多模态模型相媲美的多模态人工智能模型。 在本文中,我们将解…

JavaScript的基本组成

1、JavaScript的组成部分 JavaScript可以分为三个部分:ECMAScript标准、DOM、BOM。 ECMAScript标准 即JS的基本语法,JavaScript的核心,描述了语言的基本语法和数据类型,ECMAScript是一套标 准,定义了一种语言…

Nginx前端后端共用一个域名如何配置

在 Nginx 中配置前端和后端共用一个域名的情况,通常是通过路径或子路径将请求转发到不同的服务。以下是一个示例配置,假设: 前端静态文件在 /var/www/frontend/。 后端 API 服务运行在 http://127.0.0.1:5000。 域名是 example.com&#xff…

本地搭建deepseek-r1

一、下载ollama(官网下载比较慢,可以找个网盘资源下) 二、安装ollama 三、打开cmd,拉取模型deepseek-r1:14b(根据显存大小选择模型大小) ollama pull deepseek-r1:14b 四、运行模型 ollama run deepseek-r1:14b 五、使用网页api访问&#x…

【数据分享】1929-2024年全球站点的逐月平均能见度(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标!说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2024年全球气象站点…

MapReduce,Yarn,Spark理解与执行流程

MapReduce的API理解 Mapper 如果是单词计数:hello:1, hello:1, world:1 public void map(Object key, // 首字符偏移量Text value, // 文件的一行内容Context context) // Mapper端的上下文,…

vscode+WSL2(ubuntu22.04)+pytorch+conda+cuda+cudnn安装系列

最近在家过年闲的没事,于是研究起深度学习开发工具链的配置和安装,之前欲与天公试比高,尝试在win上用vscodecuda11.6vs2019的cl编译器搭建cuda c编程环境,最后惨败,沦为笑柄,痛定思痛,这次直接和…