2012-02-22 18 views
3

の長い文字列を操作するために、他のこのようなデータ構造を持つ通常のバイナリ演算(&|^)を行うnnが約10000である)ビットでの最高のデータ構造は何であります速いデータ構造は、Pythonのビット

答えて

5

「高速」は常に相対的です:)

BitVectorパッケージはあなたが必要なものをやっているようです。私はそれに伴うパフォーマンスに関する経験はありません。

BitStringの実装もあります。おそらく、特定のニーズに対してより効果的な測定値を見つけるためにいくつかの測定を行うでしょうか?

特定のクラスを必要とせず、スライスやビットカウントなどの必要がない場合は、任意の長さの整数であるpythonのlongの値を使用するだけでも構いません。これは最も実績のある実装です。

This qestionのように見えますが、作成者は必要なビット数が少なく、標準ライブラリが必要です。

2

MartinStettnerに言及されているものに加えて、bitarrayモジュールもあります。これは素晴らしい結果を出して複数回使用しました。

PS:私の100番目の答え、wohooo!

+1

C. OTOHで実装されて以来、私の提案よりもパフォーマンスが良いかもしれません。動作するCコンパイラが必要なので、インストールする際にいくつか問題があるかもしれません。可能な解決策については、http://stackoverflow.com/questions/780127/installing-bitarray-in-python-2-6-on-windowsを参照してください:) – MartinStettner