Python代码执行时间测量模块timeit用法解析


Posted in Python onJuly 01, 2020

1.timeit模块

timeit模块可以用来测试一小段python代码的执行速度

class timeit.Timer(stmt = 'pass',setup = 'pass',timer=<timer function>)

  • Timer是测量小段代码执行速度的类
  • stmt参数是要测试的代码语句(statment);
  • setup参数是运行代码时需要的设置;
  • timer参数是一个定时器函数,与平台有关(windows,unix,linux,mac)。

timeit.timer(number = 10000)

Timer类中测试语句执行速度的对象方法。number参数是测试代码时的测试次数,默认为1000000(一百万)次。
该方法返回执行代码的平均耗时,是一个float类型的seconds。

2.使用timeit模块对python中list内置操作的时间复杂度测算

Python代码执行时间测量模块timeit用法解析
Python代码执行时间测量模块timeit用法解析

3.测算代码块:

#下面列出list的几种常用内置方法以及list的几种构建方法
	
#coding:utf-8
 
#导入timeit模块
 
import timeit
 
#t1,以+的方式构建列表
 
'''
	li1 = [1,2]
 
	li2 = [23,24]
 
	li = li1 + li2
 
	#t2,列表生成器
 
	li = [i for i in range(10000)]
 
	#t3,将可迭代对象(range)直接转换成列表
 
	li = list(range(10000))
 
	#t4,先创建一个空列表,然后用.append方法添加元素
 
	li = []
 
	for i in range(10000):
		li.append(i)
'''
#下面开始测算
 
#append方法对空列表添加元素构造列表
def t1():
	li = []
	for i in range(10000):
		li.append(i)
#+的方法构造列表
def t2():
	li = []
	for i in range(10000):
		li += [i]
#列表生成器
def t3():
	li = [i for i in range(10000)]
#转换可迭代对象为列表
def t4():
	li = list(range(10000))
 
timer1 = timeit.Timer('t1()','from __main__ import t1')
print('+:',timer1.timeit(1000))
 
timer2 = timeit.Timer('t2()','from __main__ import t2')
print('append:',timer2.timeit(1000))
 
timer3 = timeit.Timer('t3()','from __main__ import t3')
print('列表生成器:',timer3.timeit(1000))
 
timer4 = timeit.Timer('t4','from __main__ import t4')
print('直接转换可迭代对象:',timer4.timeit(1000))

4.运行结果

+: 0.7415732243125414
append: 0.7872105163322995
列表生成器: 0.3843147415048551
直接转换可迭代对象: 1.3879485965428984e-05
[Finished in 2.0s]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中django框架通过正则搜索页面上email地址的方法
Mar 21 Python
python实现在sqlite动态创建表的方法
May 08 Python
python设计模式大全
Jun 27 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
Jun 07 Python
Python处理Excel文件实例代码
Jun 20 Python
Python Django框架实现应用添加logging日志操作示例
May 17 Python
Django中间件基础用法详解
Jul 18 Python
python实现读取excel文件中所有sheet操作示例
Aug 09 Python
Python如何优雅获取本机IP方法
Nov 10 Python
利用Tensorflow的队列多线程读取数据方式
Feb 05 Python
python线程join方法原理解析
Feb 11 Python
Python ini文件常用操作方法解析
Apr 26 Python
Python 存取npy格式数据实例
Jul 01 #Python
基于python实现音乐播放器代码实例
Jul 01 #Python
使用ITK-SNAP进行抠图操作并保存mask的实例
Jul 01 #Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 #Python
.img/.hdr格式转.nii格式的操作
Jul 01 #Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
Jul 01 #Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
Jul 01 #Python
You might like
thinkphp实现多语言功能(语言包)
2014/03/04 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
php中字符串和正则表达式详解
2014/10/23 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
JS查看对象功能代码
2008/04/25 Javascript
javascript引导程序
2008/10/26 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
python3中的md5加密实例
2018/05/29 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
个人实用简单的自我评价
2013/10/19 职场文书
保护环境倡议书500字
2014/05/19 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
公司处罚决定书
2015/06/24 职场文书
2016年推广普通话宣传周活动总结
2016/04/06 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
基于Python实现将列表数据生成折线图
2022/03/23 Python
Python 全局空间和局部空间
2022/04/06 Python