【问题标题】:Python array for bool values?布尔值的Python数组?
【发布时间】:2013-09-16 21:56:44
【问题描述】:

我知道array.array 允许使用 int/float 数组。如何拥有布尔数组?内存高效。以便将 1 个值存储为 1 位。 array 支持吗?

【问题讨论】:

  • 可能不是......如果你担心,python 可能不是这个项目的理想语言
  • array.array 不是 numpy。

标签: python


【解决方案1】:

据我所知,在原生 Python 中没有什么可以有效地存储布尔值 this,但您可以查看 bitarray 库,我认为您正在寻找它。

【讨论】:

  • 我发现bitarray 存在一些稳定性问题。至少,似乎存在影响itersearch 方法的段错误。我不确定该模块是否得到积极维护,因此可能不会有修复。
  • 我在 Python 3 中使用它时没有任何问题(至少我使用它)。我查看了您可能正在谈论的Github issue,但我无法重现它。你还有同样的问题吗?
【解决方案2】:
>>> sys.getsizeof(int)
436
>>> sys.getsizeof(bool)
436
>>> sys.getsizeof(bool())
12
>>> sys.getsizeof(int())
12
>>>

基本上即使你可以,你也不会节省任何空间......

这可能也很有趣

"sys.getsizeof(int)" returns an unreasonably large value?

【讨论】:

  • 这对“数组”结构没有帮助。
  • 更多是为了证明一个布尔在python中超过1位
  • 是的,我知道,所以我需要“非本地”结构。
猜你喜欢
  • 2015-05-23
  • 2021-12-06
  • 2012-11-16
  • 2014-12-11
  • 2013-10-02
  • 2016-05-05
  • 1970-01-01
  • 2019-03-20
相关资源
最近更新 更多