Структура данных для манипулирования длинными строками битов - PullRequest
3 голосов
/ 22 февраля 2012

В Python, какова лучшая структура данных из n битов (где n составляет около 10000), для которых выполняются обычные двоичные операции (&, |, ^) с другими такими даннымиструктура быстро ?

Ответы [ 2 ]

5 голосов
/ 22 февраля 2012

«Быстрый» всегда относительный:)

Пакет BitVector , кажется, делает то, что вам нужно. У меня нет опыта работы с ним.

Существует также реализация BitString . Возможно, вы проведете некоторые измерения, чтобы выяснить, какой из них более эффективен для ваших конкретных потребностей?

Если вам не нужен определенный класс и вам не нужны такие вещи, как нарезка или подсчет битов, вы можете просто использовать значения long python, которые являются произвольными целыми числами длины. Это может быть наиболее эффективной реализацией.

Этот вопрос кажется похожим, хотя автору требуется меньше битов и требуется стандартная библиотека.

2 голосов
/ 22 февраля 2012

Помимо упомянутых MartinStettner, есть также модуль bitarray , который я неоднократно использовал с отличными результатами.

PS: My100-й ответ, ухо!

...