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实现单向链表详解
Feb 08 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
Python下使用Scrapy爬取网页内容的实例
May 21 Python
django+mysql的使用示例
Nov 23 Python
python for和else语句趣谈
Jul 02 Python
基于python实现语音录入识别代码实例
Jan 17 Python
Python计算IV值的示例讲解
Feb 28 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
python 通过使用Yolact训练数据集
Apr 06 Python
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
May 21 Python
python中使用 unittest.TestCase单元测试的用例详解
Aug 30 Python
Python 全局空间和局部空间
Apr 06 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/08/22 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
2016/06/24 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
2016/12/30 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
2018/01/26 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
详解如何减少python内存的消耗
2019/08/09 Python
Django的CVB实例详解
2020/02/10 Python
python基于win32api实现键盘输入
2020/12/09 Python
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
linux面试题参考答案(8)
2016/04/19 面试题
博士研究生自我鉴定范文
2013/12/04 职场文书
护理专业优质毕业生自荐书
2014/01/31 职场文书
表演方阵解说词
2014/02/08 职场文书
企业员工集体活动方案
2014/08/17 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
陕西导游词
2015/02/04 职场文书
python urllib库的使用详解
2021/04/13 Python
ECharts transform数据转换和dataZoom在项目中使用
2022/12/24 Javascript