1. timeit模块
import timeit
from timeit import Timer
- timeit模块可以用来测试一小段Python代码的执行速度。
- class timeit.Timer(stmt=‘pass’, setup=‘pass’, timer=<timer function>)
Timer是测量小段代码执行速度的类;
stmt参数是要测试的代码语句(statment);
setup参数是运行代码时需要的设置;
timer参数是一个定时器函数,与平台有关。 - timeit.Timer.timeit(number=1000000)
Timer类中测试语句执行速度的对象方法。number参数是测试代码时的测试次数,默认为1000000次。方法返回执行代码的平均耗时,一个float类型的秒数。
2. list的操作测试
使用7种生成列表的方式,分别测试程序耗时:
from timeit import Timer
def t1():
li = []
for i in range(10000):
li.append(i)
def t2():
li = []
for i in range(10000):
li = li + [i]
def t3():
li = []
for i in range(10000):
li += [i]
def t4():
li = [i for i in range(10000)]
def t5():
li = list(range(10000))
def t6():
li = []
for i in range(10000):
li.extend([i])
def t7():
li = []
for i in range(10000):
li.insert(0, i)
timer1 = Timer("t1()", "from __main__ import t1")
print('append:', timer1.timeit(100))
timer2 = Timer("t2()", "from __main__ import t2")
print('+:', timer2.timeit(100))
timer3 = Timer("t3()", "from __main__ import t3")
print('+=:', timer3.timeit(100))
timer4 = Timer("t4()", "from __main__ import t4")
print('[i for i in range()]:', timer4.timeit(100))
timer5 = Timer("t5()", "from __main__ import t5")
print('list(range()):', timer5.timeit(100))
timer6 = Timer("t6()", "from __main__ import t6")
print('extend:', timer6.timeit(1000))
timer7 = Timer("t7()", "from __main__ import t7")
print('insert(0, i):', timer7.timeit(1000))
输出结果:
append: 0.05782000000000001
+: 11.831809499999999
+=: 0.06937150000000081
[i for i in range()]: 0.03126590000000107
list(range()): 0.01809679999999858
extend: 0.8746141999999999
insert(0, i): 17.4614362
3. list内置操作的时间复杂度

4. dict内置操作的时间复杂度

本文通过timeit模块对比了Python中不同list生成方式的性能,包括append、extend、列表推导等,并分析了list与dict内置操作的时间复杂度。
4万+

被折叠的 条评论
为什么被折叠?



