Python代码执行时间测量模块timeit用法解析
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内置操作的时间复杂度测算
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实现清理微信僵尸粉功能示例【基于itchat模块】
本文实例讲述了Python实现清理微信僵尸粉功能.分享给大家供大家参考,具体如下: 原理 通过Pyhton调用itchat模块登录网页版微信,给你所有好友发送特殊符号,对方收不到这个特殊符号,只要有人删了你,你的微信就会显示被删的人. 所需环境 Python3 itchat模块 安装 pip install itchat 使用 新建qf.py文件,拷贝下面代码,保存 import itchat import time itchat.auto_login(hotReload=True) # 热加载
-
Python日志logging模块功能与用法详解
本文实例讲述了Python日志logging模块功能与用法.分享给大家供大家参考,具体如下: 本文内容: logging模块的介绍 logging模块的基础使用 logging模块的扩展使用 logging中的Filter 使用配置文件配置logging和logger 小技巧 想要了解更多?不如看看官方文档. 首发日期:2018-07-05 logging模块的介绍: 它是一个python标准库,所以它的通用性很高,所有的python模块都可以与它合作参与日志记录. 日志级别: 基本 中文意义
-
python中wx模块的具体使用方法
wx包中的方法都是以大写字母开头的,而这和Python的习惯是相反的. 本节介绍如何创建python程序的图形用户界面(GUI),也就是那些带有按钮和文本框的窗口.这里介绍wxPython : 下载地址:http://www.wxpython.org/download.php 根据自己的操作系统下载相应版本. 安装: 安装过程非常简单,以win7系统为例,点击下载的exe 文件,保持安装目录与本机的python目录一致就OK了. 创建并显示一个框架 import wx # 需要导入wx模块 ap
-
Python timeit模块的使用实践
Python 中的 timeit 模块可以用来测试一段代码的执行耗时,如一个变量赋值语句的执行时间,一个函数的运行时间等. timeit 模块是 Python 标准库中的模块,无需安装,直接导入就可以使用.导入时直接 import timeit ,可以使用 timeit() 函数和 repeat() 函数,还有 Timer 类.使用 from timeit import ... 时,只能导入 Timer 类(有全局变量 __all__ 限制). timeit 模块的源码总共只有 300 多行,主
-
Python decimal模块使用方法详解
decimal 模块:decimal意思为十进制,这个模块提供了十进制浮点运算支持 1.可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确. 2.要从浮点数据转换为Decimal类型 from decimal import * Decimal.from_float(12.222) # 结果为Decimal('12.2219999999999995310417943983338773250579833984375') 3.通过设定有效数字,限定结果样式 from
-
python中的计时器timeit的使用方法
本文介绍了python中的计时器timeit的使用方法,分享给大家,具体如下: timeit 通常在一段程序的前后都用上time.time(),然后进行相减就可以得到一段程序的运行时间,不过python提供了更强大的计时库:timeit #导入timeit.timeit from timeit import timeit #看执行1000000次x=1的时间: timeit('x=1') #看x=1的执行时间,执行1次(number可以省略,默认值为1000000): timeit('x=1',
-
正则表达式+Python re模块详解
正则表达式(Regluar Expressions)又称规则表达式,在代码中常简写为REs,regexes或regexp(regex patterns).它本质上是一个小巧的.高度专用的编程语言. 通过正则表达式可以对指定的文本实现 匹配测试.内容查找.内容替换.字符串分割 等功能. re模块介绍 Python中的re模块提供了一个正则表达式引擎接口,它允许我们将正则表达式编译成模式对象,然后通过这些模式对象执行模式匹配搜索和字符串分割.子串替换等操作.re模块为这些操作分别提供了模块级别的函数
-
Python代码执行时间测量模块timeit用法解析
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 =
-
python threading和multiprocessing模块基本用法实例分析
本文实例讲述了python threading和multiprocessing模块基本用法.分享给大家供大家参考,具体如下: 前言 这两天为了做一个小项目,研究了一下python的并发编程,所谓并发无非多线程和多进程,最初找到的是threading模块,因为印象中线程"轻量...","切换快...","可共享进程资源..."等等,但是没想到这里水很深,进而找到了更好的替代品multiprocessing模块.下面会讲一些使用中的经验. 后面出现的
-
Python学习之os模块及用法
os 模块代表了程序所在的操作系统,主要用于获取程序运行所在操作系统的相关信息. 在 Python 的交互式解释器中先导入 os 模块,然后输入 os.__all__ 命令(__all__ 变量代表了该模块开放的公开接口),即可看到该模块所包含的全部属性和函数. 此处仅介绍 os 模块中常用的属性和函数: os.name:返回导入依赖模块的操作系统名称,通常可返回 'posix'.'nt'. 'java' 等值其中之一. os.environ:返回在当前系统上所有环境变量组成的字典. os.fs
-
python统计函数库scipy.stats的用法解析
背景 总结统计工作中几个常用用法在python统计函数库scipy.stats的使用范例. 正态分布 以正态分布的常见需求为例了解scipy.stats的基本使用方法. 1.生成服从指定分布的随机数 norm.rvs通过loc和scale参数可以指定随机变量的偏移和缩放参数,这里对应的是正态分布的期望和标准差.size得到随机数数组的形状参数.(也可以使用np.random.normal(loc=0.0, scale=1.0, size=None)) In [4]: import numpy a
-
Python base64和hashlib模块及用法详解
目录 一.base64模块 1.对字符串编解码 2.对URL编解码 二.hashlib模块 1.hashlib模块 1.1 常用属性 1.2 常用方法 1.3 使用步骤 2.MD5(消息摘要算法) 3.SHA-256(安全哈希算法) 一.base64模块 base64模块提供了在二进制数据和可打印ASCII字符间编解码的功能,包括 RFC3548中定义的Base16, Base32, Base64, Ascii85, Base85等编码. base64模块属于标准库,无需进行安装,导入即可使用.
-
Python中的xlrd模块使用原理解析
on里面的xlrd模块详解(一) - 疯了的小蜗 - 博客园[内容]:> 那我就一下面积个问题对xlrd模块进行学习一下: 什么是xlrd模块? 为什么使用xlrd模块? 1.什么是xlrd模块? ♦python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 今天就先来说一下xlrd模块: 一.安装xlrd模块 ♦ 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python
-
Python日志处理模块logging用法解析
logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等. 其主要优点如下: 1.可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息: 2.尤其是代码运行在服务器上,当出现问题时可以通过查看日志进行分析. logging模块基本使用: 设置logger名称 logger = logging.getLogger(log_name) 设置log级别 logger.setLevel(logging
-
Python select及selectors模块概念用法详解
1. select模块 针对select,要先理解其他几个概念: 文件描述符: 文件描述符在形式上是一个非负整数.实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表.当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符. 内核空间: Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0-4G.Linux内核将这4G字节的空间分为两部分.将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供
-
python pickle 和 shelve模块的用法
1.pickle 写: 以写方式打开一个文件描述符,调用pickle.dump把对象写进去 复制代码 代码如下: dn = {'baidu':'www.baidu.com','qq':'www.qq.com','360':'www.360.cn'} name = ['mayun','mahuateng','liyanhong'] f = open(r'C:\a.txt','w') pickle.dump(dn,f) ##写一个对象 pickle.dump(name,f) ##再写一个
-
Python中asyncore异步模块的用法及实现httpclient的实例
基础 这个模块是socket的异步实现,让我们先来熟悉一下模块中的一些类和方法: 1.asyncore.loop 输入一个轮询循环直到通过计数或打开的通道已关闭. 2.asyncore.dispatcher dispatcher类是一个底层socket类的包装对象.要使它更有用, 它有一部分事件处理方法被异步循环调用.否则它就是一个标准的非阻塞socket对象. 底层的事件在特定事件或特定的连接状态告诉异步循环,某些高级事件发生了.例如, 我们要求一个socket连接到另一个主机. (1)han
随机推荐
- mongoose设置unique不生效问题的解决及如何移除unique的限制
- jQuery fadeOut 异步实例代码详解
- asp.net 身份验证(最简单篇)
- JS与jQuery实现子窗口获取父窗口元素值的方法
- javascript禁止访客复制网页内容的实现代码
- asp.net GridView中超链接的使用(带参数)
- php生成扇形比例图实例
- CStdioFile的用法详细解析
- 浅谈innodb_autoinc_lock_mode的表现形式和选值参考方法
- JavaWeb之Filter过滤器详解
- Android ViewPager 的使用总结
- js判断输入是否为正整数、浮点数等数字的函数代码
- 解析C++编程中如何使用设计模式中的状态模式结构
- Java后端实现MD5加密的方法
- ScrollView与SeekBar绑定实现滑动时出现小滑块效果
- 浅谈PHP安全防护之Web攻击
- vue axios 二次封装的示例代码
- java中的异或问题代码解析
- docker容器运行后退出(怎么才能一直运行)
- layui使用label标签的方法