如何在Python中创建位数组?
如何声明一个非常大的位数组,比如说600万位如何在Python中创建位数组?,python,arrays,bit,Python,Arrays,Bit,如何声明一个非常大的位数组,比如说600万位 from bitarray import bitarray a = bitarray(2**20) 有关此模块的更多信息,请访问此模块可能会有帮助: from bitstring import BitArray a = BitArray(6000000) 这将占用不到1兆字节的内存,并且很容易设置、读取、切片和解释位。与bitarray模块不同,它是纯Python的,而且适用于Python3 有关更多详细信息,请参阅。使用 pip instal
from bitarray import bitarray
a = bitarray(2**20)
有关此模块的更多信息,请访问此模块可能会有帮助:
from bitstring import BitArray
a = BitArray(6000000)
这将占用不到1兆字节的内存,并且很容易设置、读取、切片和解释位。与bitarray模块不同,它是纯Python的,而且适用于Python3
有关更多详细信息,请参阅。使用
pip install bitarray
然后,这段代码将创建一个大小为600万的位数组
from bitarray import bitarray
bit_array = bitarray(6000000)
您可以使用以下命令将所有位初始化为零
bit_array.setall(0)
要将特定位(如位号25)设置为1,请执行以下操作:
bit_array[25]=1
此一行程序将字节转换为真/假位值列表。对于6M位可能无法执行,但对于小标志,它应该可以,并且不需要额外的依赖项
>>> flags = bytes.fromhex(b"beef")
>>> bits = [flags[i//8] & 1 << i%8 != 0 for i in range(len(flags) * 8)]
>>> print(bits)
[False, True, True, True, True, True, False, True, True, True, True, True, False, True, True, True]
>flags=bytes.fromhex(b“beef”)
>>>位=[flags[i//8]&1>>打印(位)
[假,真,真,真,真,真,假,真,真,真,真,真,假,真,真,真,真]
非常容易
bitarray60000 = 1<<60000
bitarray60000=1您想要实现什么?这可以用于位图之类的东西。另请参见——犹豫是否标记为重复。bitarray似乎不在标准python中,而是pypy提供的一项功能。我想您是指pipI我想您是指“包含在PyPI中”,Python包索引。:pI已提前更新pip
,请参阅然后在Windows上执行Python-m pip安装位数组。
bitarray60000 | 1<<2
bitarray60000 & 1<<2