参照 Python 代码性能优化技巧 文章测试python提速。
优化前的代码(01.flow-a.py )
from time import time t = time() lista = [1,2,3,4,5,6,7,8,9,10] listb =[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.01] for i in range (1000000): for a in range(len(lista)): for b in range(len(listb)): x=lista[a]+listb[b] print "total run time:" print time()-t
[wuxiaomeng@WudeMacBook-Pro ~/Desktop/python/01.speedup ] $python 01.flow-a.py total run time: 21.2082309723
参照原文优化后(01.flow-b.py)
from time import time t = time() lista = [1,2,3,4,5,6,7,8,9,10] listb =[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.01] len1=len(lista) len2=len(listb) for i in xrange (1000000): for a in xrange(len1): temp=lista[a] for b in xrange(len2): x=temp+listb[b] print "total run time:"
[wuxiaomeng@WudeMacBook-Pro ~/Desktop/python/01.speedup ] $python 01.flow-b.py total run time: 17.1609051228
使用列表解析优化后(01.flow-c.py)
from time import time t = time() lista = [1,2,3,4,5,6,7,8,9,10] listb =[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.01] len1=len(lista) len2=len(listb) for i in xrange (1000000): x = [a+b for a in lista for b in listb] print "total run time:"
[wuxiaomeng@WudeMacBook-Pro ~/Desktop/python/01.speedup ] $python 01.flow-c.py total run time: 12.3668849468