Подтвердить что ты не робот

Как создать массив бит в Python?

Как я могу объявить бит массива очень большого размера, скажем, 6 миллионов бит?

4b9b3361

Ответ 2

Модуль bitstring может помочь:

from bitstring import BitArray
a = BitArray(6000000)

Это займет меньше, чем мегабайт памяти, и легко установить, прочитать, отрезать и интерпретировать биты. В отличие от модуля bitarray, он чистый Python, плюс он работает для Python 3.

Подробнее см. документацию.

Ответ 3

Получить модуль bitarray с помощью

pip install bitarray

Затем этот код создаст бит массива размером 6 миллионов,

from bitarray import bitarray
bit_array = bitarray(6000000)

Вы можете инициализировать все биты до нуля, используя

bit_array.setall(0)

Чтобы установить конкретный бит, например, бит 25, равный 1, выполните следующее:

bit_array[25]=1   

Ответ 4

Этот однострочный конвертер преобразует байты в список значений True/False. Может быть, не работает для 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]

Ответ 5

Довольно легко

bitarray60000 = 1<<60000

При этом вы можете использовать оператор bithift для вашего сердца. Например, позиция 2, установленная True, будет:

bitarray60000 | 1<<2

Получение бит из позиции 2

bitarray60000 & 1<<2

Я думаю, идея довольно проста. Хотя некоторые операции могут быть сложными.

Ответ 6

Один из самых простых способов списка (bin (x)) [2:]