gpt4 book ai didi

python - 使用位数组创建类似对象的列表

转载 作者:行者123 更新时间:2023-11-28 17:46:03 25 4
gpt4 key购买 nike

我需要在 Python 中跟踪一组大约 1000 万个数字。 (所有数字都在 0 到 2^32 之间)。我会事先知道整数的最大值,并且在 0 和最大值之间,20-80% 的值将在集合中。

我当前的代码使用内置的 set。这样太慢了。就性能而言,最好的方法是使用位数组(例如 https://pypi.python.org/pypi/bitarray/ )。

我很容易使用一个位数组来构建一个带有 add(n)remove(n) 方法的类。我不知道如何做的是支持 for n in bitarray_set:。我想我需要使用迭代器或可迭代对象,但我不确定该怎么做。这可能吗?怎么办?

最佳答案

bitarray 支持 itersearch 方法,该方法遍历一个位数组出现在另一个位数组中的所有位置。使用那个:

def __iter__(self):
return self.bits.itersearch(bitarray([True]))

关于python - 使用位数组创建类似对象的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17981959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com