Verilen beş cevabın yürütme süresini karşılaştıran temel ve çok kapsamlı olmayan testler:
def numpyIndexValues(a, b):
na = np.array(a)
nb = np.array(b)
out = list(na[nb])
return out
def mapIndexValues(a, b):
out = map(a.__getitem__, b)
return list(out)
def getIndexValues(a, b):
out = operator.itemgetter(*b)(a)
return out
def pythonLoopOverlap(a, b):
c = [ a[i] for i in b]
return c
multipleListItemValues = lambda searchList, ind: [searchList[i] for i in ind]
aşağıdaki girişi kullanarak:
a = range(0, 10000000)
b = range(500, 500000)
Basit bir python döngüsü, lambda işlemiyle en yakın saniye oldu, mapIndexValues ve getIndexValues, numpy.ndrayValues yönteminin numpy.array dönüşümü ile listelerin dönüştürülmesinden sonra sürekli olarak oldukça benzerdi. En hızlı.
numpyIndexValues -> time:1.38940598 (when converted the lists to numpy arrays)
numpyIndexValues -> time:0.0193445 (using numpy array instead of python list as input, and conversion code removed)
mapIndexValues -> time:0.06477512099999999
getIndexValues -> time:0.06391049500000001
multipleListItemValues -> time:0.043773591
pythonLoopOverlap -> time:0.043021754999999995