列表和字典操作的时间复杂度
列表操作的时间测试
timeit 模块的使用
def test1():
li = [for i in range(10000)]
#1、生成一个定时器对象
time1 = timeit.Timer('test1()','from __main__ import test1') #参数接受要测试的代码块,以及导入的接口
#2、配置测试次数
ret = time1 = time1.timeit(100)
print(ret)
实际测试列表各操作时间
import timeit
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(10000):
li.insert(-1, i)
if __name__ == '__main__':
timer1 = timeit.Timer('test1()', 'from test100 import test1')
timer2 = timeit.Timer('test2()', 'from test100 import test2')
timer3 = timeit.Timer('test3()', 'from test100 import test3')
timer4 = timeit.Timer('test4()', 'from test100 import test4')
timer5 = timeit.Timer('test5()', 'from test100 import test5')
print('t1', timer1.timeit(100))
print('t2', timer2.timeit(100))
print('t3', timer3.timeit(100))
print('t4', timer4.timeit(100))
print('t5', timer5.timeit(100))
测试结果:
t1 0.07158424341100353
t2 0.07301271975410409
t3 0.03303415543256208
t4 0.020644924926769975
t5 0.13402191468167618
列表与字典内置方法的时间复杂度
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 我干了两个月的大项目,开源了!
· 推荐一款非常好用的在线 SSH 管理工具
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· 千万级的大表,如何做性能调优?
· .NET周刊【1月第1期 2025-01-05】