Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中创建位数组?_Python_Arrays_Bit - Fatal编程技术网

如何在Python中创建位数组?

如何在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

如何声明一个非常大的位数组,比如说600万位

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