我正在寻找通过索引访问以下函数的最快容器:
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倍。
编辑:对于此大小的容器,具有整数键的字典似乎快两倍。