python内置类型性能分析---timeit
python内置类型性能分析 timeit模块 timeit模块可以用来测试一小段python代码的执行速度 class timeit.Timer(stmt='pass',setup='pass',timer=<timer function>) Timer是测量小段代码执行速度的类 stmt参数是要测试的代码语句(startment),必须是字符串 setup参数是运行代码时需要的设置,必须是字符串 timer参数是一个定时器函数,与平台有关 timeit.Timer.timeit(number=1000000) Timer类中测试语句执行速度的对象方法。number参数是测试代码时测试次数,默认1000000次, 方法返回执行代码的平均耗时,一个float类型的秒数。 from timeit import Timer # li1 = [1,2] # li2 = [23,5] # li = li1 + li2 # li = [i for i in range(10000)] # li = list(range(10000)) def test1(): li = [] for i in range(10000): li.append(i) def test2(): li = [] for i in range(10000): li += [i] def test3(): li = [i for i in range(10000)] def test4(): li = list(range(10000)) def test5(): li = [] for i in range(1000): li.extend([i]) def test6(): li = [] for i in range(1000): li.insert(0,i) timer1 = Timer('test1()','from __main__ import test1') print('append:',timer1.timeit(1000)) timer2 = Timer('test2()','from __main__ import test2') print('+:',timer2.timeit(1000)) timer3 = Timer('test3()','from __main__ import test3') print('[i for i in range]:',timer1.timeit(1000)) timer4 = Timer('test4()','from __main__ import test4') print('list(range()):',timer4.timeit(1000)) timer5 = Timer('test5()','from __main__ import test5') print('extend:',timer5.timeit(1000)) timer6 = Timer('test6()','from __main__ import test6') print('insert:',timer6.timeit(1000)) index[] --- O(1) pop() --- O(1) pop(i) --- O(n) append --- O(1) insert(i,item) --- O(n) dict copy() --- O(n)