Comment créer un tableau de bits en Python?
Comment puis-je déclarer un tableau de bits d'une très grande taille, dire 6 millions de bits?
4 réponses
from bitarray import bitarray
a = bitarray(2**20)
Vous pouvez consulter plus d'infos sur ce module http://pypi.python.org/pypi/bitarray/
Le module bitstring peut aider:
from bitstring import BitArray
a = BitArray(6000000)
Cela prendra moins d'un mégaoctet de mémoire, et il est facile de définir, lire, découper et interpréter des bits. Contrairement au module bitarray, il est pur Python, plus il fonctionne pour Python 3.
Voir la documentation pour plus de détails.
Récupère le module bitarray en utilisant
pip install bitarray
Ensuite, ce code va créer un tableau de bits de taille 6 millions,
from bitarray import bitarray
bit_array = bitarray(6000000)
Vous pouvez initialiser tous les bits à zéro en utilisant
bit_array.setall(0)
Pour définir un bit particulier, disons le nombre de bits 25, à 1, procédez comme suit:
bit_array[25]=1
Ce one-liner convertit les octets en une liste de valeurs de bits True/False. Peut - être pas performant pour les bits 6M mais pour les petits drapeaux, il devrait être correct et n'a pas besoin de dépendances supplémentaires.
>>> 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]