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 相关文章推荐
pymssql数据库操作MSSQL2005实例分析
May 25 Python
Python数据分析之获取双色球历史信息的方法示例
Feb 03 Python
python中使用psutil查看内存占用的情况
Jun 11 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
Jul 23 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
Aug 12 Python
对YOLOv3模型调用时候的python接口详解
Aug 26 Python
python画蝴蝶曲线图的实例
Nov 21 Python
python类中super() 的使用解析
Dec 19 Python
python 实现保存最新的三份文件,其余的都删掉
Dec 22 Python
python求最大公约数和最小公倍数的简单方法
Feb 13 Python
jupyter notebook参数化运行python方式
Apr 10 Python
python数字图像处理:图像的绘制
Jun 28 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
php cookie的操作实现代码(登录)
2010/12/29 PHP
PHP获取MySql新增记录ID值的3种方法
2014/06/24 PHP
PHP中的替代语法介绍
2015/01/09 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
使用D3.js制作图表详解
2017/08/13 Javascript
AngularJS实现注册表单验证功能
2017/10/16 Javascript
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
vue使用keep-alive保持滚动条位置的实现方法
2019/04/09 Javascript
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
2021/01/06 Javascript
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
Python中的进程分支fork和exec详解
2015/04/11 Python
使用SAE部署Python运行环境的教程
2015/05/05 Python
Python实现串口通信(pyserial)过程解析
2019/09/25 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
Pygame的程序开始示例代码
2020/05/07 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
.NET面试10题
2014/02/24 面试题
旅游管理专业个人求职信范文
2013/12/24 职场文书
新郎新娘婚礼答谢词
2014/01/11 职场文书
个人现实表现材料
2014/02/04 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
公司辞职信模板
2015/05/13 职场文书
重阳节简报
2015/07/20 职场文书
Nginx快速入门教程
2021/03/31 Servers
Oracle用户管理及赋权
2022/04/24 Oracle
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python