在Python3.5+中制作列表浅拷贝的最快方法是什么?

2024-01-02

有几种选择可以制作shallow的副本list在 Python 3.5+ 中。显而易见的是:

  • some_list.copy()
  • some_list[:]
  • list(some_list)
  • [*some_list]
  • 和别的...

哪种方法最快?

NOTE: 虽然这个问题与“列表的副本”相关,但它仅涉及 Python 3.5+ 中的性能。如果您需要“问题的答案”为什么需要 Python 中的列表副本?", or "Python 中列表的浅拷贝和深拷贝有什么区别?“ 阅读以下:如何克隆或复制列表? https://stackoverflow.com/questions/2612802/how-to-clone-or-copy-a-list


这个问题唯一合理的答案是比较它们的执行时间。由于问题涉及 Python 3.5+,我会记得在 Python 3.5 中PEP 448 -- 附加拆包概括 https://www.python.org/dev/peps/pep-0448/被批准了,事实证明[*some_list]是在 Python 3.5+ 中制作列表浅表副本的最快方法,测量结果如下所示。当然,制作副本的方法还有很多,但我重点介绍以下几种:

  • some_list.copy()
  • some_list[:]
  • list(some_list)
  • [*some_list]
  • from copy import copy; copy(some_list)

Keep in mind these times are relative to one another, but the trend should be similar. As can be seen from the plot below, all variants behave roughly the same when the len(some_list) >= 1000: enter image description here

But at the len(some_list) < 1000 we have a clear winner, and it is [*some_list]:enter image description here

测量使用 Python 3.6.3、Windows 7 进行。

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

在Python3.5+中制作列表浅拷贝的最快方法是什么? 的相关文章

随机推荐

  • 使用云台信标设备进行室内定位如何提高数据的稳定性和准确性?

    在android中如何提高多个信标检测的稳定性 我正在使用Gimbal信标进行室内定位 蓝色是否适合室内位置数据访问 我在这方面进行了广泛的研究 因为我在充满会议室的走廊中放置了信标 所有会议室都在附近 首先 我建议将信标放置在天花板上 信
  • 如何在sbt中将jar打包到给定目录?

    在 sbt 中 如果我们执行package 将会生成一个jar文件target scala 2 12 XXX jar 但我想把jar文件放在myDirectory XXX jar 我怎样才能做到这一点 The target 默认路径的一部分
  • 使用 maven-shade-plugin 时出现多余的警告

    我在用Maven 阴影插件对于一个简单的 Maven 项目 该插件成功地将所有依赖项包含到最终的 阴影 jar 中 这个过程每次都很顺利 并且生产出的正是我所需要的 当运行 第一次 时 经过一段时间后clean 该插件很安静并且产生很少的输
  • 如何卸载 Laravel Passport

    我决定使用 JWT 并从项目中完全删除 Laravel Passport 我试图从composer remove laravel passport 然而 这并没有什么好处 Symfony Component Debug Exception
  • Javascript:我需要为对象中的每个变量放置 this.var 吗?

    在我最熟悉的 C 语言中 通常声明一个对象如下 class foo public int bar int getBar return bar Calling getBar 工作正常 忽略这一事实bar可能未初始化 变量bar within
  • Hadoop 中的重新分区

    我的问题主要是理论上的 但我有一些表已经遵循某种分区方案 可以说我的表是按天分区的 但在使用数据一段时间后 我们想修改为月份分区 我可以轻松地重新创建具有新分区定义的表并重新插入数据 这是最好的方法吗 当数据很大时听起来很慢 我看到 hiv
  • CakePHP 2 $this->Html->脚本顺序

    我试图将 JS 文件插入到视图中 但它们插入的顺序错误 在我的 default ctp 中我有这个 this gt Html gt script array https ajax googleapis com ajax libs jquer
  • MySQL 连接、分组依据、排序依据

    我有一个产品表 CREATE TABLE products id INT 以及这些产品的图片表 CREATE TABLE images id INT product id INT default TINYINT 1 我需要选择所有产品 并加
  • javafx如何使用复选框获取表视图中选定的行数据

    在这个项目中 我无法在控制台输出中获取复选框数据是否被选中 My code import java util Arrays import java util Iterator import java util List import jav
  • 在 Linux 上快速连接多个文件

    我正在使用 Python 多重处理为每个进程生成一个临时输出文件 它们的大小可能有几 GB 我制作了几十个 这些临时文件需要连接起来才能形成所需的输出 而这一步被证明是瓶颈 也是并行杀手 是否有一个 Linux 工具可以通过修改文件系统元数
  • WebView 不重新加载具有相同 URL 的页面

    当加载与之前加载过的页面具有相同 url 的页面时 JavaFX 会显示一些奇怪的行为 下面的代码演示了这个问题 类初始化后 加载页面 然后使用自定义样式类将突出显示应用于任意 html 元素 该突出显示已正确呈现 最后 通过用户输入事件
  • 使用正确的编码读取文件

    我有一个 txt 文件 如果我使用标准文本编辑器 如记事本或 scite 打开 我可以读取如下字符串 Artist1 Title 1 Artist2 Title 2 然后我用我的 PHP 脚本打开它并阅读以下几行 tracklistFile
  • 将聚合函数 SUM 与 GROUP BY 一起应用

    在 Active Record Ruby on Rails 中执行此查询的最佳方法是什么 SELECT sum amount as total amount FROM payments GROUP BY person id product
  • C# 中有内置的 Encoding Enum 吗?

    我有一个接收 Encoding 对象作为参数的函数 但是 我认为其他程序员传递枚举值而不是 Encoding 对象可能更容易 特别是对于不习惯处理不同编码的程序员 我在 C 中找不到任何内置的 Encoding 枚举 我是否错过了某些内容
  • 这段代码是否通用,或者只是我的系统?

    include
  • 在 Intranet 上使用 Nuget

    我认为 NuGet 是依赖管理的好主意 我想尝试为我的团队使用它来管理依赖项 问题是我们位于内联网上并且没有连接到互联网 理想情况下 我希望能够在本地镜像官方 NuGet feed 并用我们内部提供的本地包 feed 对其进行补充 任何人都
  • 解析 Objective-C printf 格式字符串?

    我想获取某个范围内的成员范围NSString建有 NSString stringWithFormat 解析 Objective C 格式字符串的最佳方法是什么 我不能只使用 C 格式字符串解析器 因为 我还需要确保它支持格式排序 1 d 2
  • 书签功能作为侧边栏打开

    您好 我在我的网站中实现了书签功能 但是当我单击工具栏上的书签链接时 它会在侧边栏中打开一个新窗口 而不是在 mozilla firefox 中打开一个新页面 它在 IE 中工作正常 任何人都可以帮助我吗 AFAIK 您无法更改脚本的行为
  • 导入 typescript 时未找到该相关模块

    先发制人注意事项 Stackoverflow 上有大量 未找到相关模块 的问题 我已经浏览了尽可能多的内容 但它们并不重复 请不要将此标记为重复项 我有一个 Vue 项目设置为vue create使用 Babel 和 Typescript
  • 在Python3.5+中制作列表浅拷贝的最快方法是什么?

    有几种选择可以制作shallow的副本list在 Python 3 5 中 显而易见的是 some list copy some list list some list some list 和别的 哪种方法最快 NOTE 虽然这个问题与 列