В Python, что является наиболее эффективной структура данных n
бит (где n
составляет около 10000), на которых выполняют обычные бинарные операции (&
, |
, ^
) с другими подобными структурами данных является fast?структуры данных для управления длинных строк бит
ответ
"Fast" всегда относительна :)
BitVector пакет, кажется, делать то, что вам нужно. Однако у меня нет опыта работы с ним.
Существует также реализация BitString. Возможно, вы выполните некоторые измерения, чтобы узнать, какая из них более эффективна для ваших конкретных потребностей?
Если вы не хотите использовать определенный класс и не нуждаетесь в таких вещах, как нарезка или подсчет бит, вы можете просто использовать значения long
python, которые являются произвольными целыми числами. Это может быть самая результативная реализация.
This qestion похоже, похоже, хотя автору требуется меньше бит и требуется стандартная библиотека.
В дополнение к упомянутым MartinStettner есть также модуль bitarray, который я использовал в нескольких случаях с отличными результатами.
PS: Мой 100-й ответ, wohooo!
Возможно, это будет еще более результативным, чем мои предложения, так как он реализован в C. OTOH. У вас могут возникнуть проблемы с его установкой, поскольку для этого нужен рабочий компилятор C. См. Http://stackoverflow.com/questions/780127/installing-bitarray-in-python-2-6-on-windows для возможных решений :) – MartinStettner