在看python算法时,发现简单的列表生成,不同的方式性能相差巨大,让我对性能优化有了很大兴趣。大家也来看一看平时有没有犯类似的错误呢。

#!/usr/bin/env python

import time

def test1(n):
    lst = []
    for i in range(n*10000):
        lst = lst + [i]

    return lst

def test2(n):
    lst = []
    for i in range(n*10000):
        lst.append(i)

    return lst

def test3(n):
    return [ i for i in range(n*10000) ]

def test4(n):
    return list(range(n*10000))

start = time.clock()
test4(10)
end = time.clock()
print end-start


不同的方法,函数执行的时间相差一两个数量级,在大型应用中,可能就是几百倍的性能优化空间,掌握底层实现,精准操作还是很重要的啊。