python数据结构_(列表)大O性能_学习笔记(2)
1.列表
1)一般列表操作命令的复杂度(准确来说是函数的复杂度)
2)时间计算(timeit模块和Timer对象)
要捕获我们的每个函数执行所需的时间,我们将使用 Python 的 timeit 模块。timeit 模块旨在 允许 Python 开发人员通过在一致的环境中运行函数并使用尽可能相似的操作系统的时序机制 来进行跨平台时序测量。 要使用 timeit,你需要创建一个 Timer 对象,其参数是两个 Python 语句。第一个参数是一个 你想要执行时间的 Python 语句; 第二个参数是一个将运行一次以设置测试的语句。然后 timeit 模块将计算执行语句所需的时间。默认情况下,timeit 将尝试运行语句一百万次。 当它完成列表 时,它返回时间作为表示总秒数的浮点值。由于它执行语句一百万次,可以读取结果作为执 行测试一次的微秒数。你还可以传递 timeit 一个参数名字为 number,允许你指定执行测试语 句的次数。以下显示了运行我们的每个测试功能 1000 次需要多长时间。
#注:from __main__ import test1表示从当前环境导入test1函数到timeit环境中
t1 = Timer("test()","from __main__ import test")
print("contact" ,t1.timeit(number=1000),"ms")
#指定测试函数test的次数是1000次,返回的结果可以当成测试一次所需要的时间,单位为毫秒
3)知识点
#创建Timer对象
t1 = Timer("需要测试的函数",“从本地导入需要测试的函数”)
#使用timeit模块对函数进行测试,测试为一千次,返回的是秒数,可以理解为测试一次的毫秒数。1s = 1000ms
print(t1.timeit(number = 1000))
4)列表操作及性能
创建列表(4种方式)
#方式一:拼接
def test1():l = []for i in range(100000):l = l + [i]#方式二:append()方法
def test2():l = []for i in range(1000000):l.append(i)#方式三:创建列表生成器
def test3():l = [i for i in range(1000000)]#方式四:构造包装列表的函数
def test4():l = list(range(1000000))
上面的四种方法,其复杂程度依次减小,执行时间缩短
python数据结构_(列表)大O性能_学习笔记(2)相关推荐
- b+树时间复杂度_前端大神用的学习笔记:线段树和树状数组
全文篇幅较长,细心理解一定会有收获的♪(^∇^*). 1|0线段树 1|1一些概念 线段树是一种二叉搜索树,每一个结点都是一个区间(也可以叫作线段,可以有单点的叶子结点),有一张比较形象的图如 ...
- Pandas 性能优化 学习笔记
摘要 本文介绍了使用 Pandas 进行数据挖掘时常用的加速技巧. 实验环境 import numpy as np import pandas as pd print(np.__version__) ...
- hadoop大数据开发技术学习笔记第三天:(前序)MySQL数据库进阶
hadoop大数据开发技术学习笔记第三天:(前序)MySQL数据库进阶 一.回顾知识 1.myschool数据库和数据表的创建 (1)创建数据库 (2)数据库模型图 (3)创建数据表grand (4) ...
- 大数据Hadoop教程-学习笔记01【大数据导论与Linux基础】
视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程,总时长:14:22:04 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g,提取码: ...
- 雨痕大神的《学习笔记系列》
雨痕大神的<学习笔记>可以在他的GitHub(https://github.com/qyuhen/book)下载,7000+的Star,足以证明认可度. 笔记系列陆陆续续在出版,已出版的有 ...
- 大数据Hadoop教程-学习笔记02【Apache Hadoop、HDFS】
视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g 提取码: 6666 [P001-P ...
- mysql性能优化-学习笔记
mysql性能优化-学习笔记
- 《python基础教程(第二版)》学习笔记 基础部分(第1章)
<python基础教程(第二版)>学习笔记 基础部分(第1章) python常用的IDE: Windows: IDLE(gui), Eclipse+PyDev; Python(comman ...
- python segy格式地震数据读写包segyio学习笔记(二)
python segy格式地震数据读写包segyio学习笔记(二) 最近大致搞明白了segyio读取叠后和叠前segy数据的方法,以及内部存储结构,以两段代码为例: 叠后数据读取.这是一个从给定时窗内 ...
- python word 操作 doc 文件格式转docx 格式 学习笔记
python word 操作 doc 文件格式转docx 格式 学习笔记 from win32com import client as wc import time # TODO file_0 = & ...
最新文章
- linux新内核的freeze框架以及意义
- JavaScript事件处理的例子:事件捕捉和冒泡 - event capture and bubble
- 全国计算机等级考试题库二级C操作题100套(第68套)
- 解读Laravel,看PHP如何实现Facade?
- html页面加载动画尺寸,6种CSS3加载动画
- 数据结构研究 ----单链表的按序号查找
- 数字图像处理-数字图像基础
- html页面透明背景,css 背景透明 元素(标签)背景透明的css设计
- 华为防火墙easy-ip配置
- Port-A-Thon
- Git 补丁Apply Patch是干啥的?
- 程序员不要总想着四两拨千斤
- 中国科学技术大学2021计算机考研分数线,【中国科学技术大学】2021考研复试分数线3月13日已公布!速看!...
- 盘后复盘 20160622
- iperf3.1源码解析笔记(1)-网络压力测试工具iperf的使用
- RAID介绍及RAID10配置实例
- Telephony之TelephonyRegistry(原)
- win7ie11调用java失败,win7纯净版系统下ie11无法加载java插件
- 【MyBatis】基础全网最全,看这篇就够了
- navacate连接不上mysql_解决Navicat无法连接到MySQL