Python几种建表方法运行时间的比较

建立一个表[0,1,2,3.......10n],下面几种方法都能实现,但是运行时间却截然不同哦

import time
#方法一
def test1(n):
    list=[]
    for i in range(n*10):
        list=list+[i]
    return list


#方法二
def test2(n):
    list=[]
    for i in range(n*10):
        list.append(i)

#方法三
def test3(n):
  return [i for i in range(n*10)]
#方法四
def test4(n):
    return list(range(n*10))
/////////
下面调用time模块中clock()来计算程序运行时间,拿第四种为例,
start=time.clock()
a=test4(2)
end=time.clock()
print end-start,a
运行结果输出:

9.81685321663e-06 ,[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
其他三种方法运行时间分别为:
3.61438686612e-05 
2.63270154446e-05 
1.24941768212e-05
大家肯定有疑问,为什么第四种算法最节省时间?
简单来说,第四种方法直接利用了python的原算法(列表list),而其他方法在实现过程中构造一些额外的结构:
第一种和第二种构造了lst列表,第三种其实也构造了列表[i for i in range(n*10)],只有第四种直接调用了Python的原函数list()
有什么疑问,望留言!

猜你喜欢

转载自blog.csdn.net/u012132349/article/details/77455519