Python でおそらく 1000 万個の数字のセットを追跡する必要があります。(すべての数値は 0 から 2^32 の間です)。整数の最大値を事前に知っており、0 から最大の間で、値の 20 ~ 80% がセットに含まれます。
私の現在のコードは、組み込みの を使用していset
ます。この方法では遅すぎます。パフォーマンスを考慮する限り、これを行う最善の方法は bitarray ( https://pypi.python.org/pypi/bitarray/など) を使用することです。
bitarray を使用してadd(n)
、remove(n)
メソッドでクラスを構築するのは簡単です。どうすればいいかわからないのはサポートfor n in bitarray_set:
です。イテレータまたはイテラブルを使用する必要があると思いますが、その方法がわかりません。これは可能ですか?どのように?