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

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

  • LINQ в Python
  • Ошибка при развертывании Django на Apache
  • При печати изображения определяется, насколько он будет отображаться на странице?
  • Использование пула многопроцессорности python в терминале и в модулях кода для Django или Flask
  • Кто выполняет обратный вызов при использовании метода apply_async для многопроцессорного пула?
  • Как я могу осмыслить предложение `else` петель Python?
  • python group - список целых чисел, с ближайшими значениями
  • Издевательский класс: Mock () или patch ()?
  • 4 Solutions collect form web for “Как создать массив бит в Python?”

    from bitarray import bitarray a = bitarray(2**20) 

    Вы можете узнать больше об этом модуле по адресу http://pypi.python.org/pypi/bitarray/

    Модуль битовой строки может помочь:

     from bitstring import BitArray a = BitArray(6000000) 

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

    Дополнительную информацию см. В документации .

    Получить модуль bitarray, используя

     pip install bitarray 

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

     from bitarray import bitarray bit_array = bitarray(6000000) 

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

     bit_array.setall(0) 

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

     bit_array[25]=1 

    Это однострочный конвертер преобразует байты в список значений 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] 
    Python - лучший язык программирования в мире.