Python:创建n个列表的最快方法

2023-12-12

所以我想知道如何最好地创建空白列表列表:

[[],[],[]...]

由于 Python 处理内存中列表的方式,这不起作用:

[[]]*n

这确实创建了[[],[],...]但每个元素都是相同的列表:

d = [[]]*n
d[0].append(1)
#[[1],[1],...]

像列表理解这样的东西是有效的:

d = [[] for x in xrange(0,n)]

但这使用 Python VM 进行循环。有没有办法使用隐含循环(利用它是用 C 编写的)?

d = []
map(lambda n: d.append([]),xrange(0,10))

这实际上更慢。 :(


可能是比以下方法稍微快一点的唯一方法

d = [[] for x in xrange(n)]

is

from itertools import repeat
d = [[] for i in repeat(None, n)]

它不必创建一个新的intobject 在每次迭代中,并且在我的机器上大约快了 15%。

Edit:使用 NumPy,您可以使用以下方法避免 Python 循环

d = numpy.empty((n, 0)).tolist()

但这实际上比列表理解慢 2.5 倍。

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

Python:创建n个列表的最快方法 的相关文章

随机推荐

  • 在多台计算机上获取修补程序并导出到 CSV

    如何在输出文件中正确使用 这是我的代码 get content computers txt Where AND Test Connection Quiet foreach Get Hotfix computername Select CSN
  • 在时间序列的背景下分解

    我有一个数据集 我想要整体可视化并按几个不同的变量进行分类 我创建了一个 Flexdashboard 其中包含一个闪亮的应用程序来选择分解类型 并使用工作代码来绘制正确的子集 我的方法是重复的 这向我暗示我错过了更好的方法来做到这一点 让我
  • Laravel:传递默认变量以查看

    在 Laravel 中 我们都以几乎相同的方式将数据传递到视图 data array thundercats gt Hoooooooooooh return View make myawesomeview data 但是有没有什么方法可以将
  • Tomcat 7 中的 URLRewrite

    我计划开发一个内联网应用程序 Java客户端 JSP SQLite 这样做的目标是 当用户单击链接时 如果用户有权访问 在业务逻辑中处理的团队 则应提供文件以供下载 数据库中有一个表保存信息 下面是示例行 ID file team md5
  • 设置大货币数字的格式

    使用 FormatStyle API 是否可以使用 20M 或 10k 等尾随 SI 单位来格式化大数字 特别是 我正在寻找一种使用适当的本地化和货币符号来格式化大货币值 例如 20M 的方法 我目前有一个货币格式化程序 extension
  • 按 Import-CSV 中的最大数值对对象进行排序

    我想要文件顶部的最大值 mailboxSize 我有一个简历作为输入 当我执行以下排序命令时 Import Csv import csv Sort Object MailboxSize DisplayName Descending Expo
  • C++ 函数原型?

    这是新手问题 5 但我没有老师 所以 无论如何 我们开始 我想知道是否有必要将函数原型放在文件顶部 而不是将main函数到文件末尾并在文件顶部创建所有函数 据我所知 VC 和 G 都没有抱怨 是否存在不允许我这样做的标准 当您更改函数参数和
  • 奇怪的 Ajax ComboBox 下拉列表

    我在某个面板中有组合框
  • 删除 display:flex 会在链接周围添加空格。为什么?

    我创建了一个 html 错误页面 它有 2 行显示错误 第二行有主页链接 为了使两条线保持在中心 我创建了一个顶层css grid并使网格的每一行成为flex 我注意到如果我使用display flex对于第二行 周围没有任何空间here链
  • jQuery .toggleClass 不切换 CSS 类

    The highlight开启时课程不工作 button 我究竟做错了什么 HTML
  • 图中2个节点之间的所有路径

    我必须制作一个无信息搜索 广度优先搜索 程序 该程序需要两个节点并返回它们之间的所有路径 public void BFS Nod start Nod end Queue
  • 全屏背景图像被拉伸

    我为我的一个客户制作了一张全屏背景图像 但问题是 当我使用以下 css 代码使图像适合所有屏幕时 bg image img position fixed left 0 top 0 width 100 max height 100 bg im
  • SQL:存储过程中的子句:如何传递值

    我想编写一个 SQL Server 2005 存储过程 它将从用户表中选择并返回一些用户 ID 的用户记录 这些用户 ID 作为参数传递给存储过程 这个怎么做 我可以将用户 ID 作为以逗号分隔的字符串传递 这样我就可以使用 select
  • scanf 和 strcmp 与 c 字符串

    我找到了一个不错的example如何使用 strcmp 但它只能与 fgets 一起使用 并且我需要使其与 scanf 一起使用 所以 这是代码 int main void char fruit apple n char ans 80 do
  • Linq to XML Noob 问题 - 属性上的不同和排序

    我刚刚开始使用 Linq to XML 我有一个简单的文档 其中包含如下记录
  • java.io.File 的 TreePath

    有没有什么简单的方法可以获得File or java nio file Path 就此而言 从TreePath 例如 您有一个JTree像这样 Green Blue Red Yellow Purple jpg Brown jpg Black
  • 我正在阅读《C 编程语言》(第 2 版),但我不明白一个概念:

    我正在阅读 C 编程语言 第 2 版 但我不明白一个概念 有这段代码可以将输入复制到输出 include
  • NodeJS 无法从 req.params.token 获取令牌值

    app post reset token function req res async waterfall function done User findOne local resetPasswordToken req params tok
  • R 正则表达式中的转义句点

    除非我遗漏了什么 否则这个正则表达式看起来非常简单 grepl Processor 0 9 Processor Time names web02 然而 它不喜欢逃避时期 我的目的是成为一个字面上的时期 Error is an unrecog
  • Python:创建n个列表的最快方法

    所以我想知道如何最好地创建空白列表列表 由于 Python 处理内存中列表的方式 这不起作用 n 这确实创建了 但每个元素都是相同的列表 d n d 0 append 1 1 1 像列表理解这样的东西是有效的 d for x in xran