我需要在 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:
。我想我需要使用迭代器或可迭代的,但我不知道该怎么做。这可能吗?如何?