Python 中的双端队列是如何实现的,它们什么时候比列表更糟糕?

2023-11-23

我最近开始研究如何在 Python 中实现各种数据结构,以便使我的代码更加高效。在研究列表和双端队列的工作原理时,我发现当我想要移位和取消移位时,可以将时间从列表中的 O(n) 减少到双端队列中的 O(1)(列表被实现为固定长度数组,这些数组具有每次在前面插入某些内容时都会完全复制,等等...)。我似乎找不到双端队列如何实现的细节,以及它的缺点和缺点的细节。列表。有人可以帮我解答这两个问题吗?


https://github.com/python/cpython/blob/v3.8.1/Modules/_collectionsmodule.c

A dequeobject由一个双向链表组成block nodes.

所以是的,一个deque正如另一个答案所暗示的那样,是一个(双向)链表。

详细说明:这意味着 Python 列表更适合随机访问和固定长度操作(包括切片),而双端队列对于从末尾推送和弹出内容更有用,索引(有趣的是,但不包括切片)可能,但比列表慢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中的双端队列是如何实现的,它们什么时候比列表更糟糕? 的相关文章

随机推荐

  • 从服务器 HTTPS 接收并验证证书 - android

    我正在通过 https 从 Android 客户端调用 Web 服务 我必须验证从服务器端收到的证书 我怎么做 目前 这是我用来调用网络服务的代码 private static String SendPost String url Arra
  • 如何在 Jekyll 中链接到没有 html 扩展名的 page.url 页面?

    我正在 Jekyll 中建立一个网站 为了删除帖子中的 html 扩展名 我将以下内容添加到 config yml permalink kb title 为了从页面中删除 html 扩展名 我为每个页面创建了文件夹 并在每个页面文件夹中放置
  • 如何有条件地为表格单元格中的背景着色?

    我正在渲染一个表格p 数据表 PrimeFaces 我想要做的是根据单元格内容的值对单元格的背景进行着色 这与为行或列着色不同 它是单个单元格 首先是CSS问题 如果我这样做
  • 从 HTML 页面源下载图像文件

    我正在编写一个抓取工具 用于从 HTML 页面下载所有图像文件并将它们保存到特定文件夹中 所有图像都是 HTML 页面的一部分 下面是一些代码 用于从提供的 URL 下载所有图像 并将它们保存在指定的输出文件夹中 您可以根据自己的需要对其进
  • Flutter widget 测试选择另一个项目时不会触发 DropdownButton.onChanged

    我正在编写一个 Flutter Web 应用程序 并向我的代码库添加一些小部件测试 我很难让 flutter test 按预期工作 我当前面临的问题是尝试在 DropdownButton 中选择一个值 以下是重现问题的完整小部件测试代码 v
  • 添加和删​​除 JLabel 上的图标

    您好 我有一个标签 我已为其设置了图标 我想在单击按钮后删除此图标 它的方法是什么 Create icon Icon icon new ImageIcon getClass getResource foo bar baz png Creat
  • 掩蔽者在 SHAP 包中真正做了什么并让他们适合训练或测试?

    我一直在努力与shap包裹 我想从我的逻辑回归模型中确定形状值 与此相反TreeExplainer the LinearExplainer需要一个所谓的掩蔽器 这个掩码器到底有什么作用 独立掩码器和分区掩码器有什么区别 另外 我对测试集中的
  • Windows中当前目录和工作目录的区别

    Windows 中的当前目录和工作目录有什么区别 如何更改 Notepad 或 Mozilla Firefox 等应用程序的工作目录 当前目录和工作目录只是同一事物的两个不同名称 每个进程维护一个当前目录 当前目录在启动时指定为用于创建进程
  • 正则表达式在尊重 CDATA 的同时转义 HTML 和符号

    我编写了一个内容管理系统 它使用服务器端正则表达式在页面响应发送到客户端浏览器之前对页面响应中的 符号进行转义 正则表达式会注意已转义的或属于 HTML 实体一部分的 符号 例如 以下内容 a b c amp d copy 2009 更改为
  • jQuery AJAX 调用弄乱了字符编码

    我有一个输出 JSON 的 servlet Servlet 的输出编码是 ISO 8859 1 我们的网络应用程序中的页面也设置为 ISO 8859 1 我会使用 UTF 8 但这超出了我的控制范围 我们必须使用 ISO 8859 1 当我
  • 了解 CPU 如何决定将哪些内容加载到高速缓存中

    假设一台计算机有 64k 的 L1 缓存和 512k 的 L2 缓存 程序员在主内存中创建 填充了一个包含 10mb 数据的数组 例如 3D 模型的顶点 索引数据 该数组可能包含一系列结构 例如 struct x vec3 pos vec3
  • 通过 Firebase 电子邮件/密码身份验证进行 CSRF 保护

    我正在努力将我的 Node js 应用程序部署到生产环境中 我们遇到了一些 CSRF 问题 但在深入研究问题并了解有关 CSRF 攻击的更多信息后 我想知道我们是否需要执行这些检查 我们的 API 已从 CSRF 检查中列入白名单 因此依赖
  • http://schemas.microsoft.com/winfx/2006/xaml/presentation 定义

    当您在 Visual Studio 中创建新的 WpfApplication 项目时 您将获得以下 XAML 复制并粘贴 URLhttp schemas microsoft com winfx 2006 xaml presentation在
  • 显示线框和纯色

    是否可以在同一对象上显示对象的线框及其面的纯色 我找到了一种使用对象克隆并分配不同材质的方法 例如 var geometry new THREE PlaneGeometry plane width plane height width 1
  • CSS 以百分比进行翻译会导致图像模糊

    我遇到过这个非常烦人的问题 当您将图像与变换对齐时 基于百分比进行平移会导致图像稍微模糊 这仅与百分比结盟 考虑这个CSS img display block height auto max width 100 transform tran
  • 提高 ASP.NET 应用程序的性能

    如何提高 ASP NET 应用程序的性能 我应该注意哪些领域 该应用程序包括数据库连接和图像解析等 编写高性能 Web 应用程序的 10 个技巧 提高 ASP net 应用程序性能的 20 个技巧 Bye
  • 已超过最大帧长度 65536

    我有一个设置 我使用 gremlin core 库来查询远程 Janusgraph 服务器 目前数据大小适中 但将来会增加 几天前 我在客户端上看到 已超出最大帧长度 65536 错误 我的服务器 yaml 文件中 maxContentLe
  • 低功耗蓝牙 GATT 安全级别

    我正在研究与 GATT 相关的低功耗蓝牙 BLE 中可用的安全类型 更具体地说 使用指定不同安全级别 低 中 高 的 gatttool 时会执行哪些操作 我的理解是 BLE 中的安全管理器支持 4 种不同的安全属性 没有配对 与不支持中间人
  • 如何使用 React 以编程方式填充输入字段值?

    我有一个带有一些输入字段的模式 我可以轻松地通过用户键入输入来自动传递数据 使用onChange输入字段中的函数 如
  • Python 中的双端队列是如何实现的,它们什么时候比列表更糟糕?

    我最近开始研究如何在 Python 中实现各种数据结构 以便使我的代码更加高效 在研究列表和双端队列的工作原理时 我发现当我想要移位和取消移位时 可以将时间从列表中的 O n 减少到双端队列中的 O 1 列表被实现为固定长度数组 这些数组具