Python:列表中的每个元素占用多少空间?

2024-01-09

我需要一个非常大的列表,并且正在尝试弄清楚我可以将其设置为多大,以便它仍然适合 1-2GB 的 RAM。我正在使用 64 位 (x86_64) 上的 CPython 实现。

编辑:感谢 bua 的回答,我已经填写了一些更具体的答案。

空间(内存)使用情况是多少(以字节为单位):

  • the list itself
    • sys.getsizeof([]) == 72
  • each list entry (not including the data)
    • sys.getsizeof([0, 1, 2, 3]) == 104,因此每个条目有 8 个字节的开销。
  • the data if it is an integer
    • sys.getsizeof(2**62) == 24(但根据整数大小而变化)
    • sys.getsizeof(2**63) == 40
    • sys.getsizeof(2**128) == 48
    • sys.getsizeof(2**256) == 66
  • the data if it is an object (sizeof(Pyobject) I guess))
    • sys.getsizeof(C()) == 72(C 是一个空的用户空间对象)

如果您可以分享有关观察到的尺寸的更多一般数据,那就太好了。例如:

  • 是否有特殊情况(我认为不可变值可能是共享的,所以布尔列表可能不会占用任何额外的数据空间)?
  • 也许小列表需要 X 字节开销,但大列表需要 Y 字节开销?

开始点:

>>> import sys
>>> a=list()
>>> type(a)
<type 'list'>
>>> sys.getsizeof(a)
36
>>> b=1
>>> type(b)
<type 'int'>
>>> sys.getsizeof(b)
12

以及来自 python 帮助:

>>> help(sys.getsizeof)
Help on built-in function getsizeof in module sys:

getsizeof(...)
    getsizeof(object, default) -> int

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

Python:列表中的每个元素占用多少空间? 的相关文章

随机推荐

  • Grafana日志插件不显示日志面板

    我正在尝试创建一个支持日志面板的 Grafana 插件 我正在关注来自他们网站的路线 https grafana com docs grafana latest developers plugins build a logs data so
  • 突出显示 FlowDocument 中的部分文本

    我想突出显示文本中的某些部分FlowDocument根据搜索结果 我正在做的是获取搜索词在文本中出现的索引FlowDocument然后在从找到的索引开始到找到的索引 搜索词长度结束的文本范围上应用背景颜色 TextRange content
  • 将鼠标悬停在另一个元素上时更改一个元素的类 d3

    我有一个图像列表和图像标题列表 我希望当我将鼠标悬停在相应的图像上时能够显示标题的悬停状态 更改 css 但我不知道如何连接这两个数据 我的代码如下 我有它 这样当您单击顶部数字时 信息就会显示在下面
  • 将焦点设置在 Windows 中的控制台上?

    是否可以将焦点设置在 Windows 中的控制台应用程序上 SetFocus http msdn microsoft com en us library ms646312 VS 85 aspx看起来很有希望 但它需要一个 HWND 而且我不
  • VARCHAR2 列上的 ResultSet.getString() 返回空字符串

    免责声明 我实际上对 Oracle 和 Java 都一无所知 问题出在其他一些开发人员在某个时间点完成然后离开公司的项目中 现在我必须设置网络服务器 数据库并使其全部启动并运行 代码大约是这样的 OracleDataSource ods n
  • 扩展基元而不对其进行原型设计

    我正在开发一个相当丑陋的库 它可以让你做一些奇怪的事情 有了图表 您可以以链式样式映射一组集合 并且当您更改 整个系统中要改变的值 当最终类型是 JS 原语时 问题就出现了 就我而言 在使用值和对象制作图表后 我可以执行以下操作 CHAIN
  • 动态添加项目到边框视口

    我想首先创建一个空视口 布局 边框 然后向其中添加项目 最后渲染并显示 但是当我创建视口元素时 它抛出一个错误 说 未捕获的类型错误 无法读取未定义的属性 flex 这是我的代码
  • 通过adb授予PACKAGE_USAGE_STATS权限

    adb shell pm grant x y z android permission PACKAGE USAGE STATS 这是授予的命令PACKAGE USAGE STATS通过 adb 获得权限 但只有当我从未在本机设置中切换此权限
  • 如何使用react-router-dom创建受保护的路由?

    如何创建受保护的路由react router dom并将响应存储在 localStorage 中 以便用户下次尝试打开时可以再次查看其详细信息 登录后 他们应该重定向到仪表板页面 所有功能都添加到 ContextApi 中 代码沙箱链接 C
  • webpack "--watch" 与 "--hot" :有什么区别?

    使用有什么区别 webpack watch and webpack dev server hot thanks 根据 webpack 文档 https webpack github io docs tutorials getting sta
  • 仅 Vault Enterprise 的 Vault Sidecar 注入器权限被拒绝

    我正在尝试探索Vault Enterprise 但当我使用Vault Enterprise时 Sidecar的权限被拒绝 但当我尝试使用本地Vault服务器时 似乎工作正常 这是包含本地保管库的工作示例的存储库保险库边车注射器应用程序 ht
  • 使用 python 3 代码在 CSV 文件中查找特定标头

    现在我有Python 3代码 它获取CSV文件中的一列数据 根据空格将每个单元格中的短语分隔成单独的单词 然后将数据导出回新的CSV文件中 我想知道是否有一种方法可以告诉 python 仅将格式化代码应用于具有特定标题的特定列 这是我的源数
  • 如何在C#中获取Table的innerHTML

    HtmlTable baseCalendar new HtmlTable HtmlTableRow calendarRow new HtmlTableRow HtmlTableCell calendarCell new HtmlTableC
  • 根据几个条件计算总计

    假设我有一个这样的表 id col1 col2 col3 1 a 1 k1 2 a 2 k2 3 a 3 k3 4 b 3 k4 现在 我想要所有行的列 col2 的总和 其中 col1 与 id 1 的行中的 col1 相同 所以那就是1
  • 如何在 Django 模板中访问外键表的数据?

    我想将外键表的数据访问到 django 模板中 我的代码如下 class TutorialCategory models Model tutorial category models CharField max length 200 cat
  • Visual Studio Community 2019 在为 MATLAB MEX 文件的性能分析器“准备数据”期间挂起

    我正在尝试使用 Visual Studio Community Edition 2019 分析 MEX mexw64 文件 该 MEX 文件是根据我们编写的 C 文件创建的 并使用 GCC 和 G 进行编译 并启用了调试符号 如果重要的话
  • 如何在 if 语句中回显 PHP 和 HTML

    我有一个 if 语句 只需在 result37 ncrteam 的值时显示一些代码 但是我如何回显该 HTML 和 PHP 代码 回声 不工作并回显 也不行 这是我的代码 Status br
  • Docker 容器之间的 HTTP 请求

    我正处于学习如何使用 Docker 的第一阶段 所以我正在尝试一些基本的东西 我创建了两个需要通过 HTTP 请求交换数据的 Node Express 服务 My docker compose yml file networks isola
  • Android - Firebase 快速入门电子邮件/密码身份验证演示不起作用

    因此 这里有几个类似的问题 但没有一个对我来说有可行的解决方案 我正在使用从 Github 下载的 Quickstart 演示 今天下载了 我没有更改演示代码中的任何内容 我已经解决了一些常见错误 根据我所读到的内容 我在 Firebase
  • Python:列表中的每个元素占用多少空间?

    我需要一个非常大的列表 并且正在尝试弄清楚我可以将其设置为多大 以便它仍然适合 1 2GB 的 RAM 我正在使用 64 位 x86 64 上的 CPython 实现 编辑 感谢 bua 的回答 我已经填写了一些更具体的答案 空间 内存 使