【python基础 - 06】timeit quick start

timeit 是一个常见的用于评测代码执行时间的库,有助于用其评测代码的性能。话不多说,直接来看示例。

这个示例是判断有序数组中用循环的方法查找一个目标数字和用二分查找目标数字的耗时对比。下面示例中的 bisect 使用方法可以参照这个链接

# -*- coding: utf-8 -*-
'''
@Time    : 2021/12/20
@Author  : Yanyuxiang
@Email   : yanyuxiangtoday@163.com
@FileName: quick_start_timeit.py
@Software: VSCode
'''

import timeit
import bisect


if __name__ == '__main__':
  data_list = list(range(10**5))
  target = 99999
  loop_time_cost = timeit.timeit(
    stmt='data_list.index(target)',  # Function to test time.
    globals=globals(),  # Using global modules.
    number=100,  # Repeat times.
  )
  half_search_time_cost = timeit.timeit(
    stmt='bisect.bisect_left(data_list, target)',
    globals=globals(),
    number=100,
  )
  print(f'Loop time cost: {loop_time_cost}.')
  print(f'Half search time cost: {half_search_time_cost}.')
  print(f'(Loop time cost) / (half search time cost): '
        f'{loop_time_cost / half_search_time_cost}.')
>>> python3 quick_start_timeit.py
Loop time cost: 0.073760083.
Half search time cost: 2.412499999999984e-05.
(Loop time cost) / (half search time cost): 3057.4127668393985.

可以看出 timeit 评测了语句的耗时,并且在这个示例中二分查找比循环查找快了 3057 倍,随着数据量增加差异会更多。

博主会持续更新一些人工智能领域的知识和实践、工作中遇到的问题和感悟、高效工作的方法和技巧,如果喜欢请关注、点赞、收藏支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雁宇up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值