Python 数据结构开销/性能

2024-04-05

在 Python 中使用列表比使用字典和元组有任何性能优势吗?

如果我正在优化速度,是否有任何理由选择其中一种而不是另一种?


Rich,

列表和字典是适合不同需求的野兽。确保您不使用列表进行线性搜索,其中字典哈希是完美的,因为它的速度要慢得多。另外,如果您只需要遍历元素列表,请不要使用字典,因为它会比列表占用更多空间。

这听起来似乎是显而易见的,但通过算法选择正确的数据结构比微优化具有更高的性能增益,因为更高效的编译代码布局等。如果您在 O(n) 中的列表中搜索而不是在 O( 中的字典中搜索1)、微优化救不了你。

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

Python 数据结构开销/性能 的相关文章

随机推荐

  • 通过点击表格行触发jquery

    我喜欢在表格中有一行使其可点击 而不仅仅是行中的文本 因此我使用以下代码使其打开另一个页面 td 但是现在我使用 jquery 和下面的代码在 div 中而不是在新页面中打开新页面 我将如何更新我的行代码以打开 div 中的内容而不是在新页
  • mod_rewrite 用名称替换 ID

    我的网站上有一个动态显示内容的页面 网址结构是mywebsite com giveaway giveaway php id any number 我希望将该动态 URL 更改为静态 友好 URLmywebsite com giveaway
  • PageNumberPagination 和没有固定顺序的查询集

    根据文档 http www django rest framework org api guide pagination pagenumberpagination 当使用继承自的类时 无需任何特殊即可启用分页GenericAPIView 我
  • 使用 ajax 发布时的 net::ERR_EMPTY_RESPONSE

    你好 我正在尝试逐个上传 xlsx 文件 以便我可以显示状态栏 问题是 我使用 for 循环和 while 循环通过 ajax 发送请求来做到这一点 但是当位于第 40 个元素时 它会停止并且控制台显示 POST site php net
  • Android:当片段更改时如何重新创建操作栏

    我有一个活动显示一些片段 Activity 视图仅包含使用自定义 FragmentPagerAdapter 初始化的 ViewPager 该适配器提供 3 个片段之间的导航 除了操作栏之外 一切似乎都工作正常 我在片段中重写 onCreat
  • Chrome 扩展:每个选项卡的存储空间

    我想将扩展的状态存储在单个文件中而不是存储在单个文件中chrome storage但每个选项卡 扩展是关于在任何页面上制作网格系统覆盖 并希望存储每个选项卡的最新更新 这里是一些代码 popup js function let gridTo
  • Android 中触摸时可以模糊部分图像吗?

    我想模糊图像视图上的特定区域 例如 我想允许用户在android中绘制类似于裁剪的矩形 一旦用户在图像上绘制该矩形 矩形内的区域将变得模糊 或手指触摸 我搜索了很多 但大多数示例都解释了如何模糊完整图像 找不到任何解释如何仅模糊某些部分的教
  • php preg_grep 和元音变音/重音

    我有一个由术语组成的数组 其中一些包含重音字符 我像这样做了 preg grep data array Napol on Caf result preg grep input i data 因此 如果用户输入 le 我还希望结果 Napol
  • Visual Studio打开文件问题

    是否可以在 Visual Studio 2008 中打开项目 而不打开上次打开项目时先前打开的所有文件 我习惯在处理许多文件时保持打开状态 因此下次我打开项目时 它 非常缓慢 将一堆文件加载到编辑器中 我什至可能不需要打开它们 我已经搜索了
  • 如何减少 UNIX telnet 连接超时

    我有一个 unix shell 脚本 用于测试文件中列出的多个主机的 ftp 端口 for i in cat ftp hosts txt do echo QUIT telnet i 21 done 一般来说 这个脚本可以工作 但是如果我遇到
  • C++ 从 0:n-1 (n > k) 范围内随机采样 k 个数字,无需放回

    我正在致力于将 MATLAB 模拟移植到 C 中 为此 我尝试复制 MATLABrandsample 函数 http www mathworks com help stats randsample html 我还没有找到有效的方法来做到这一
  • 当键具有无效名称时的 TypedDict

    如果我的字典中有一个带有无效标识符的键 例如A 2 我怎样才能创建一个TypedDict与这个领域 E g from typing import TypedDict class RandomAlphabet TypedDict A 2 st
  • PHP 文件是否有可能在执行时删除自身?

    我有一个 PHP 文件 安装 php 它处理其他脚本的安装 我希望该文件在运行后删除自身及其包含的文件夹 这可能吗 假设该文件夹仅包含 install php 的演示 mkdir demo cd demo echo
  • GetSystemMetrics 和 TScreen 返回错误值

    我使用的是德尔福XE5 我认为我的笔记本电脑有问题 一段时间后 它向 Screen Width 和 GetSystemMetrics SM CXSCREEN 返回错误的值 高度相同 我的操作系统是 Windows 7 64 位 我的笔记本电
  • 以编程方式将证书安装到 Mozilla 中

    有没有办法以编程方式将证书安装到 mozilla 中 我们正在尝试编写所有内容的脚本来消除环境偏差 因此通过 mozilla 首选项手动安装它无法满足我们的需求 我认为有一种方法可以使用 certutil 来做到这一点 但我不确定 Mozi
  • 如何存储类内函数之间使用的 cookie jar?

    我想听听您关于如何有效存储 cookie 的建议 这些 cookie 将在类中由其他函数使用 我当前的代码如下所示 class SomeClass def init self username password self logged in
  • 不同长度的数组到一个 CSV

    如果您有多个不同长度的数组 如何将它们导出到 powershell 中的单个 csv 中 Array1 1 2 3 Array2 Bob smithy Alex Jeremy Array3 yes no 输出 CSV Number Name
  • Visual Studio 2008 中的“if 语句”之类的垂直线?

    是否有插件或设置可以添加垂直线来链接 Visual Studio 2008 中的 if 语句 之类的内容 Thanks 来自 DevExpress 的 CodeRush http www devexpress com Products Vi
  • AppStore 提交被拒绝 - 应用程序不允许使用 UDID

    我正在尝试将应用程序上传到 AppStore 但上传后我收到此错误 您的应用程序包含非公共 API 使用 请检查错误并更正它们 然后重新提交您的应用 应用程序不允许使用UDID 也不能使用UIDevice的唯一标识方式 请更新您的应用程序的
  • Python 数据结构开销/性能

    在 Python 中使用列表比使用字典和元组有任何性能优势吗 如果我正在优化速度 是否有任何理由选择其中一种而不是另一种 Rich 列表和字典是适合不同需求的野兽 确保您不使用列表进行线性搜索 其中字典哈希是完美的 因为它的速度要慢得多 另