Jak utworzyć tablicę bitów w Pythonie?
Jak mogę zadeklarować tablicę bitów o bardzo dużym rozmiarze, powiedzmy 6 milionów bitów?
25
Author: Ciro Santilli 新疆改造中心 六四事件 法轮功, 2012-07-26
4 answers
from bitarray import bitarray
a = bitarray(2**20)
Możesz sprawdzić więcej informacji o tym module na http://pypi.python.org/pypi/bitarray/
32
Author: SJP,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-26 12:25:04
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-26 12:25:04
Moduł bitstring może pomóc:
from bitstring import BitArray
a = BitArray(6000000)
To zajmie mniej niż megabajt pamięci i jest łatwe do Ustawienia, odczytu, wycinania i interpretacji bitów. W przeciwieństwie do modułu bitarray jest to czysty Python, plus działa dla Pythona 3.
Zobacz dokumentacja aby uzyskać więcej szczegółów.
23
Author: Scott Griffiths,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-11 21:28:53
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-11 21:28:53
Pobierz Moduł bitarray używając
pip install bitarray
Następnie ten kod utworzy tablicę bitów o rozmiarze 6 milionów,
from bitarray import bitarray
bit_array = bitarray(6000000)
Możesz zainicjalizować wszystkie bity do zera używając
bit_array.setall(0)
Aby ustawić konkretny bit, powiedzmy numer bitu 25, na 1, wykonaj następujące czynności:
bit_array[25]=1
5
Author: Tarun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-15 04:33:29
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-15 04:33:29
Ten jednowierszowy konwertuje bajty na listę wartości bitów Prawda / Fałsz. Może nie działać dla bitów 6M, ale dla małych flag powinno być dobrze i nie wymaga dodatkowych zależności.
>>> 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
Author: Felix Weis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-14 02:15:01
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-14 02:15:01