2012-02-22 59 views
3

在Python長串,什麼是執行通常的二進制運算(&|^)與其他這樣的數據結構的n位(其中n爲約10000),在其最佳的數據結構是快速數據結構來操作位

回答

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 2012-02-22 14:24:58