Python最快的容器,用于索引访问的布尔值

时间:2017-06-14 16:08:15

标签: python optimization containers

我正在寻找通过索引访问以下函数的最快容器:

counter = 0

for i in range(large_integer):          
    for j in range(len(primes)):
        if patterns[j][i%primes[j]]: 
            counter +=1
            break

,其中:
large_integer 大于10 ^ 10,
primes 是具有连续素数的1D容器。例如(5,7)
patterns 是一个2D容器,它为 primes 中的每个项目保存一个容纳布尔值的相应长度的1D容器。例如:((False,True,False,True,False),(False,False,True,False,True,False,False))
primes 预计少于50个数字,全部唯一,每个少于100.初步建造后,预计不会有任何容器发生变化。

到目前为止,我提出的最好的是元组。我尝试使用numpy数组,但速度慢了约2倍。我也尝试在现场构建相关的布尔值,而根本不使用2D容器,但它的速度慢了约5倍。

编辑:对于此大小的容器,具有整数键的字典似乎快两倍。

0 个答案:

没有答案