ind = pd.Index(range(993))
print timeit.timeit("ind.get_loc(23)",setup="from __main__ import ind",)
ind2 = set(range(9999123))
print timeit.timeit("23431232 in ind2",setup="from __main__ import ind2",)
ind3 = range(99)
print timeit.timeit("23431232 in ind3",setup="from __main__ import ind3",)
print timeit.timeit("ind3.index(12)",setup="from __main__ import ind3",)
输出:
4.46973529269
0.135495255209
5.70757211201
1.13445516574
ind = pd.Index(range(9912213))
time0=time.time()
print ind.get_loc(2223)
print 'correction time costed {0:.2f}'.format(time.time() - time0)
a = {}
for i,v in enumerate(ind):
a[v]=i
time0=time.time()
print a[2233]
print 'correction time costed {0:.5f}'.format(time.time() - time0)
输出:
ind = pd.Index(range(9912213))
time0=time.time()
print ind.get_loc(2223)
print 'correction time costed {0:.2f}'.format(time.time() - time0)
a = {}
for i,v in enumerate(ind):
a[v]=i
time0=time.time()
print a[2233]
print 'correction time costed {0:.5f}'.format(time.time() - time0)
输出:
2223
correction time costed 0.65
2233
correction time costed 0.00100
总结,a in b,b是set最快
寻找a在b中的行号,即index 。 list最慢,估计在遍历把 map最快,index 太慢