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文件夹与文件的操作实现代码
Jul 13 Python
Python实现在线音乐播放器
Mar 03 Python
Python中对象的引用与复制代码示例
Dec 04 Python
Python Web程序部署到Ubuntu服务器上的方法
Feb 22 Python
Python初学者需要注意的事项小结(python2与python3)
Sep 26 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
详解Pycharm出现out of memory的终极解决方法
Mar 03 Python
Django实现列表页商品数据返回教程
Apr 03 Python
Python configparser模块操作代码实例
Jun 08 Python
Keras 加载已经训练好的模型进行预测操作
Jun 17 Python
基于Django快速集成Echarts代码示例
Dec 01 Python
Python3中PyQt5简单实现文件打开及保存
Jun 10 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一句话cmdshell新型 (非一句话木马)
2009/04/18 PHP
PHP 开源框架22个简单简介
2009/08/24 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
destoon二次开发常用数据库操作
2014/06/21 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
PHP设计模式之原型设计模式原理与用法分析
2018/04/25 PHP
PHP简单验证码功能机制实例详解
2019/03/27 PHP
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
JS+jQuery实现注册信息的验证功能
2017/09/26 jQuery
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
Python基础教程之浅拷贝和深拷贝实例详解
2017/07/15 Python
python自动化报告的输出用例详解
2018/05/30 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
在pycharm中显示python画的图方法
2019/08/31 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
美国最好的保健品打折网店:Swanson
2017/08/04 全球购物
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
外企C语言笔试题
2013/11/10 面试题
旅游管理毕业生自荐信
2013/11/05 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
2015年世界急救日宣传活动方案
2015/05/06 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS