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操作Elasticsearch数据索引的教程
Apr 08 Python
Python的Django框架中settings文件的部署建议
May 30 Python
Python的Flask框架的简介和安装方法
Nov 13 Python
Python实现计算最小编辑距离
Mar 17 Python
Python多进程分块读取超大文件的方法
Apr 13 Python
Python黑魔法Descriptor描述符的实例解析
Jun 02 Python
浅谈使用Python内置函数getattr实现分发模式
Jan 22 Python
Python实现批量压缩图片
Jan 25 Python
selenium+python设置爬虫代理IP的方法
Nov 29 Python
Python3内置模块pprint让打印比print更美观详解
Jun 02 Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 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
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
js微信分享API
2020/10/11 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
2016/11/17 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
Python机器学习之决策树算法实例详解
2017/12/06 Python
python dict 相同key 合并value的实例
2019/01/21 Python
Django web框架使用url path name详解
2019/04/29 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
Python如何重新加载模块
2020/07/29 Python
python 深度学习中的4种激活函数
2020/09/18 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
纯CSS3实现移动端展开和收起效果的示例代码
2020/04/26 HTML / CSS
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
夜班门卫岗位职责
2013/12/09 职场文书
交通安全寄语大全
2014/04/08 职场文书
人大调研汇报材料
2014/08/14 职场文书
2015年党员自评材料
2014/12/17 职场文书