使用timeit模块测试Python数据结构的性能

《Python数据结构与算法分析》(第二版)

比较四种列表生成方式的性能:

import timeit

'''
四种不同的生成列表方法
'''


def test1():# 连接法
    l = []
    for i in range(1000):
        l = l + [i]


def test2():# 追加法
    l = []
    for i in range(1000):
        l.append(i)


def test3():# 列表解析式法
    l = [i for i in range(1000)]


def test4():# 列表构造器法
    l = list(range(1000))


'''
使用Python的timeit模块,测试每个函数的执行时间,默认情况下,timeit会执行100万次语句
'''


#创建Timer对象, 要使用timeit模块,首先创建一个Timer对象

t1 = timeit.Timer("test1()", "from __main__ import test1")# 第一个参数是要为之计时的Python语句,第二个参数是建立测试的语句
print("concat ", t1.timeit(number=1000), "milliseconds")# 执行100万次所用的秒数,可以视作执行一次所用的微秒数

t2 = timeit.Timer("test2()", "from __main__ import test2")
print("append ", t2.timeit(number=1000), "milliseconds")

t3 = timeit.Timer("test3()", "from __main__ import test3")
print("comprehension ", t3.timeit(number=1000), "milliseconds")

t4 = timeit.Timer("test4()", "from __main__ import test4")
print("list range ", t4.timeit(number=1000), "milliseconds")

运行结果:
在这里插入图片描述
说明:执行时间其实包含了调用测试函数的额外开销,但可以假设四种情形的函数调用开销相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值