Какова наилучшая структура данных в n
битах (где n
составляет около 10 000) в Python, в которой выполнение обычных двоичных операций (&
, |
, ^
) с другими такими структурами данных быстро?
Структура данных для управления длинными строками битов
Ответы (2)
"Быстро" всегда относительно :)
Пакет BitVector, кажется, делает то, что вам нужно. Однако у меня нет опыта работы с ним.
Существует также реализация BitString. Возможно, вы проводите некоторые измерения, чтобы выяснить, какой из них более эффективен для ваших конкретных нужд?
Если вам не нужен конкретный класс и вам не нужны такие вещи, как нарезка или подсчет битов, вы можете просто использовать значения long
python, которые представляют собой целые числа произвольной длины. Это может быть наиболее производительной реализацией.
Этот вопрос кажется быть похожим, хотя автору нужно меньше бит и требуется стандартная библиотека.
Помимо упомянутых Мартином Стеттнером, есть также модуль bitarray, который я использовал на нескольких мероприятия с отличными результатами.
PS: Мой сотый ответ, woohoo!