代码之家  ›  专栏  ›  技术社区  ›  Dan

Python中的超大布尔列表

  •  6
  • Dan  · 技术社区  · 16 年前

    最好的方法是列表吗?还是阵列?还是上课?或者只是一个使用bit操作的长int?还是别的什么?

    谢谢

    6 回复  |  直到 16 年前
        1
  •  12
  •   LukáÅ¡ Lalinský    16 年前

    bitarray array 你自己的整数。

        2
  •  4
  •   S.Lott    16 年前

    “快速确定任何给定的数字,如123456000,是在”真“集合中还是”假“集合中。

    这是什么 set 是为了。

    要使数字的布尔标志为“false”,请将其从true集中删除。

    生活会简单得多。

        3
  •  3
  •   jldupont    16 年前

    你有没有考虑过使用像SQLite这样的轻量级数据库?

        4
  •  3
  •   Scott Griffiths    15 年前

    你也可以试试 bitstring

    from bitstring import BitArray
    # Initialise with two hundred million zero bits
    s = BitArray(200000000)
    # Set a few bits to 1
    s.set(1, [76, 33, 123456000])
    # And test them
    if s.all([33, 76, 123456000]):
        pass
    

    其他海报是正确的,尽管一套简单的海报可能是解决你特定问题的更好方法。

        5
  •  1
  •   Michael Dillon    16 年前

    乍一看,Python BitVector模块听起来就像它做了你想要的事情。它可以在 http://cobweb.ecn.purdue.edu/~kak/dist/BitVector-1.5.1.html

    理想情况下,你会把你正在做的事情封装在一个从BitVector派生的类中,即。

    class TFValues(BitVector):
       pass
    

    这样,您就可以添加一个列表来包含相关信息,例如特定TF值的名称。

        6
  •  0
  •   Matthias Urlichs    7 年前

    如果设置的位大多是连续的,则还可以选择存储范围列表,例如PyPI模块 https://pypi.org/project/range_set/ set