Python布尔字节大小

2024-09-28 19:30:08 发布

您现在位置:Python中文网/ 问答频道 /正文

显然,整数在Python中要花费24字节。我能理解它之所以这样做,是因为它代表了无界数。然而,看起来布尔数据类型也要花费24字节,即使它可能只代表两个值。为什么?

编辑:我不是在要求最好的存储bools的方法。我已经从其他答案中知道了NumPy、BitArray等。我的问题是为什么,而不是如何。为了清楚和集中注意力,我删除了问题的第二部分。


Tags: 方法答案numpy编辑字节代表整数数据类型
1条回答
网友
1楼 · 发布于 2024-09-28 19:30:08

一个bool对于它所代表的内容来说可能相当大,但其中只有两个。一个包含Trues的列表只包含对一个规范的True对象的4或8字节引用。

如果8字节仍然太大,并且您真的想使用Python来完成您正在做的事情,那么您可以考虑使用内置的array模块或NumPy提供的数组类型。它们提供每bool一个字节的表示。如果这仍然太多,您可以使用位集,可以手动使用Python的内置bignum,也可以使用PyPI中的^{}之类的内容。这些选项可能会降低程序的运行速度。其中一些选项可以提高速度,但前提是您可以利用一些功能,将工作从解释代码推送到C语言中

相关问题 更多 >