测试代码运行的时间
import time
tic = time.time()
much_job = [x**2 for x in range(1, 1000000, 3)]
toc = time.time()
print('userd: {:.5f}s'.format(toc-tic))
# userd: 0.06204s
一、加速查找
1. 用set而非list
import time
data = [i**2+1 for i in range(1000000)]
list_data = list(data)
set_data = set(data)
# normal
tic = time.time()
s = 1098987 in list_data
toc = time.time()
print('userd: {:.5f}s'.format(toc-tic))
# speed up
tic = time.time()
ss = 1098987 in set_data
toc = time.time()
print('userd: {:.5f}s'.format(toc-tic))
# userd: 0.00833s
# userd: 0.00000s
2. 用dict而非两个list进行匹配查找
import time
list_a = [i*2-1 for i in range(1000000)]
list_b = [i**2 for i in list_a]
dict_ab = dict(zip(list_a, list_b))
# normal
tic = time.time()
a = list_b[list_a.index(876567)]
toc = time.time()
print('userd: {:.5f}s'.format(toc-tic))
# speed up
tic = time.time()
aa = dict_ab.get(876567, None)
toc = time.time()
print('userd: {:.5f}s'.format(toc-tic))
# userd: 0.00394s
# userd: 0.00000s