2024-09-28 19:30:08 发布
网友
显然,整数在Python中要花费24字节。我能理解它之所以这样做,是因为它代表了无界数。然而,看起来布尔数据类型也要花费24字节,即使它可能只代表两个值。为什么?
编辑:我不是在要求最好的存储bools的方法。我已经从其他答案中知道了NumPy、BitArray等。我的问题是为什么,而不是如何。为了清楚和集中注意力,我删除了问题的第二部分。
一个bool对于它所代表的内容来说可能相当大,但其中只有两个。一个包含Trues的列表只包含对一个规范的True对象的4或8字节引用。
bool
True
如果8字节仍然太大,并且您真的想使用Python来完成您正在做的事情,那么您可以考虑使用内置的array模块或NumPy提供的数组类型。它们提供每bool一个字节的表示。如果这仍然太多,您可以使用位集,可以手动使用Python的内置bignum,也可以使用PyPI中的^{}之类的内容。这些选项可能会降低程序的运行速度。其中一些选项可以提高速度,但前提是您可以利用一些功能,将工作从解释代码推送到C语言中
array
一个
bool
对于它所代表的内容来说可能相当大,但其中只有两个。一个包含True
s的列表只包含对一个规范的True
对象的4或8字节引用。如果8字节仍然太大,并且您真的想使用Python来完成您正在做的事情,那么您可以考虑使用内置的} 之类的内容。这些选项可能会降低程序的运行速度。其中一些选项可以提高速度,但前提是您可以利用一些功能,将工作从解释代码推送到C语言中
array
模块或NumPy提供的数组类型。它们提供每bool一个字节的表示。如果这仍然太多,您可以使用位集,可以手动使用Python的内置bignum,也可以使用PyPI中的^{相关问题 更多 >
编程相关推荐