算法与数据结构(part2)--Python内置类型性能分析
学习笔记,仅供参考
文章目录
- 算法与数据结构--基于python
- Python内置类型性能分析
- timeit模块
- 计时器类timeit.Timer
- 计时器类下的timeit.Timer.timeit方法
- 举个例子
- list内置操作的时间复杂度
- dict内置操作的时间复杂度
算法与数据结构–基于python
Python内置类型性能分析
timeit模块
该模块可以用来测试一段Python代码的执行速度,该模块定义了三个函数(timeit, repeat, default_timer)和一个公共类(timeit.Timer类)。
计时器类timeit.Timer
Timer是测量小段代码执行速度的类,我们可以用如下代码创建Timer对象:
import timeit
timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)
- 参数解释
参数 | 解释 |
---|---|
stmt | 测试的代码语句,也可以传方法名 |
setup | 运行语句时需要的设置,例如为了执行time.time()要引入time包 |
timer | 是一个定时器函数,与平台有关,不需要处理 |
- 注意事项
stmt和setup可能包含多个语句,它们需要用;
换行,但是它不能包含多行字符串。
计时器类下的timeit.Timer.timeit方法
语法:
timeit.Timer.timeit(number=1000000)
#number参数是测试代码时的测试次数,默认为1000000次
该方法返回执行代码的平均耗时,一个float类型的秒数。
举个例子
输入:
def test1():l = []for i in range(3000):l.append(i)def test2():l = []for i in range(3000):l.insert(0, i)def test3():l = [i for i in range(3000)]def test4():l = list(range(3000))def test5():l = []for i in range(3000):l.extend([i])def test6():l = []for i in range(3000):l = l + [i]def test7():l = []for i in range(3000):l += [i]from timeit import Timerprint('开始测试')
t1 = Timer("test1()", "from __main__ import test1")
print("append:\t\t\t", t1.timeit(number=1000), "秒")
t2 = Timer("test2()", "from __main__ import test2")
print("insert:\t\t", t2.timeit(number=1000), "秒")
t3 = Timer("test3()", "from __main__ import test3")
print("推倒:\t\t", t3.timeit(number=1000), "秒")
t4 = Timer("test4()", "from __main__ import test4")
print("list:\t\t", t4.timeit(number=1000), "秒")
t5 = Timer("test5()", "from __main__ import test5")
print("extend:\t\t", t5.timeit(number=1000), "秒")
t6 = Timer("test6()", "from __main__ import test6")
print("+:\t\t", t6.timeit(number=1000), "秒")
t7 = Timer("test7()", "from __main__ import test7")
print("+=:\t\t", t7.timeit(number=1000), "秒")
print('结束测试')
输出:
开始测试
append: 1.1612458527893832 秒
insert: 9.692673133243222 秒
推倒: 0.43955184525272273 秒
list: 0.20597684730072885 秒
extend: 1.714901670148274 秒
+: 60.014670117555504 秒
+=: 1.030209997337593 秒
结束测试
list内置操作的时间复杂度
dict内置操作的时间复杂度
算法与数据结构(part2)--Python内置类型性能分析相关推荐
- 哪些模块可用于python性能分析_4-Python内置类型性能分析
![](https://img.kancloud.cn/41/e0/41e066af9a6c25a24868d9667253ec98_1241x333.jpg) ***** ## 代码执行时间测量模块 ...
- python内置类型方法_python基础(一)内置类型及方法
python 内置类型主要包含7大类: 数字 序列 映射 文件 类 实例 异常 其中,最常用数据类型为序列 序列 python中包含7种内建序列 列表(list):由方括号构成,用逗号分隔项目: [a ...
- python 类继承list,为什么继承 Python 内置类型会出问题?!
本文出自"Python为什么"系列,请查看全部文章 不久前,Python猫 给大家推荐了一本书<流畅的Python>(点击可跳转阅读),那篇文章有比较多的"溢 ...
- 以爬取知乎为例,进行python 多进程爬虫性能分析
以爬取知乎为例,进行python 多进程爬虫性能分析 如果对多进程multiproessing模块不熟悉,请先浏览 python 使用multiprocessing模块进行多进程爬虫 问题背景: 爬取 ...
- Python——内置类型
Python定义了丰富的数据类型,包括: 数值型:int, float, complex 序列:(iterable) str, unicode, tuple, list, bytearray, buf ...
- Python内置类型——list
list(列表)是Python内置的可变序列(Sequence)类型,list的对象的方法也都是就地(in-place)更改调用这些方法的列表对象, List的一些细节 可以直接为list的某个下标赋 ...
- 算法与数据结构的python概述
引子 问题一:1+2+3+4+5+-+10000=? 第一种解法: 1+2=3,3+3=6,6+4=10,10+5=15- 这是要算到猴年马月的节奏呀 果断弃之 第二种解法: 聪明的高斯,这样玩: ( ...
- python内置类型_Python内置对象类型
核心数字类型: 数字:int,long,float,complex,bool 字符:str,unicode 列表:list 字典:dict 元组:tuple 文件:file 其他类型:集合(set), ...
- python内置类型方法_浅析Python数字类型和字符串类型的内置方法
一.数字类型内置方法 1.1 整型的内置方法 作用 描述年龄.号码.id号 定义方式 x = 10 x = int('10') x = int(10.1) x = int('10.1') # 报错 内 ...
最新文章
- GitHub 中 Merge pull request 的 3 中选项说明
- Tablayout 多个界面使用一个fragment 的实例
- 公文字体字号标准2020_党政机关公文格式(收藏)
- android联网程序,android 联网 HttpClient
- SpringMVC框架--学习笔记(上)
- Dotnet core使用JWT认证授权最佳实践(二)
- 开课吧Web:Web前端入行门槛低吗?
- Linux x86_64内核中断初始化
- 多元梯度下降法(2)--学习率α machine learning
- 一个屌丝程序猿的人生(三十九)
- Android WebView使用详解
- Shell脚本之shift用法
- cisco 三层交换机与二层交换机级联 vlan trunk
- (附源码)ssm小型超市管理系统的设计与实现 毕业设计 011136
- TEACH_NLP——开篇
- C++ Deque的使用
- SQL优化(面试题)
- win7 DllRgisterServer 的调用失败错误 0x80040200
- 天津落户——历程简记
- lol6月五日服务器维护,lol5月6日维护公告
热门文章
- OpenGL研究, GUI框架分析, 虚拟机比较, Win10历险记, WxWidget, uboot, WireShark
- Spring MVC 参数自动绑定List的解决方案
- VS中生成时“sgen.exe”已退出,代码为 1解决办法
- 查看ecshop广告位对应的广告详细信息
- IIS企业案例系列之七:发布Exchange OWA之SSL桥接模式
- 点击一次铵钮产生一个新文本框,分别输入值,然后获取
- Android数据库存放的具体位置
- Java链接MySQL练习题:格式化日期、性别;避免代码注入
- 小组项目第一次讨论总结
- Java虚拟机执行引擎多态的实现