Python用于索引访问的booleans的最快容器

2024-04-24 08:35:17 发布

您现在位置:Python中文网/ 问答频道 /正文

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

counter = 0

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

,其中:
大整数大于10^10,
素数是具有连续素数的1D容器。例如(5,7)
patterns是一个2D容器,它为素数中的每个项保存相应长度的1D容器,它保存布尔值。例如:((False,True,False,True,False),(False,False,True,False,True,False,False))
素数的数字应该少于50个,都是唯一的,每个都少于100个。初始施工后,所有集装箱都不会发生变化。

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


编辑:对于这种大小的容器,带有整数键的字典似乎要快一倍。你知道吗


Tags: 函数infalsetrueforcounterrange整数