python数据结构性能分析
python数据结构性能分析
1 案例
实例化一个空列表,然后将0-n范围的数据添加到列表中。(四种方式)
1.1 方式一
def test1(num):
num_list = []
for i in range(n)
num_list += [i]
return num_list
1.2 方式二
def test2(num):
num_list = []
for i in range(num):
num_list.append(i)
return num_list
1.3 方式三
def test3(num):
return [i for i in range(num)]
1.4 方式四
def test4(num):
num_list = list(range(num))
return num_list
2 timeit模块
timeit
是Python标准库内置的小工具,该模块可以用来测试一段python代码的性能(执行速度/时长)。
- Timer类:该类是timeit模块中专门用于测量python代码的执行速度/时长的。原型为:
class timeit.Timer(stmt='pass',setup='pass')。
- stmt参数:表示即将进行测试的代码块语句。
- setup:运行代码块语句时所需要的设置。
- timeit函数:timeit.Timer.timeit(number=100000),该函数返回代码块语句执行number次的平均耗时。
2.1 计算四种方式的平均耗时
- 四种方式中哪种方式添加列表元素的效率最高呢?
- 计算运行平均耗时
from timeit import Timer
# 方式一
def test1(num):
num_list = []
for i in range(num):
num_list += [i]
return num_list
# 方式二
def test2(num):
num_list = []
for i in range(num):
num_list.append(i)
return num_list
# 方式三
def test3(num):
return [i for i in range(num)]
# 方式四
def test4(num):
num_list = list(range(num))
return num_list
if __name__ == '__main__':
timer = Timer("test1(1000)", "from __main__ import test1")
t1 = timer.timeit(1000)
timer2 = Timer("test2(1000)", "from __main__ import test2")
t2 = timer2.timeit(1000)
timer3 = Timer("test3(1000)", "from __main__ import test3")
t3 = timer3.timeit(1000)
timer4 = Timer("test4(1000)", "from __main__ import test4")
t4 = timer4.timeit(1000)
print('t1> ',t1)
print('t2> ',t2)
print('t3> ',t3)
print('t4> ',t4)
# 输出:
t1> 0.09772760000487324
t2> 0.06621109999832697
t3> 0.03528640000149608
t4> 0.021056300000054762
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律