python中in在list和dict中查找效率的对比分析


Posted in Python onMay 04, 2018

首先给一个简单的例子,测测list和dict查找的时间:

import time
query_lst = [-60000,-6000,-600,-60,-6,0,6,60,600,6000,60000]
lst = []
dic = {}
for i in range(100000000):
 lst.append(i)
 dic[i] = 1 
start = time.time()
for v in query_lst:
 if v in lst:
  continue
end1 = time.time()
for v in query_lst:
 if v in dic:
  continue
end2 = time.time()
print "list search time : %f"%(end1-start)
print "dict search time : %f"%(end2-end1)

运行结果:

list search time : 11.836798 
dict search time : 0.000007

通过上例我们可以看到list的查找效率远远低于dict的效率,原因如下:

python中list对象的存储结构采用的是线性表,因此其查询复杂度为O(n),而dict对象的存储结构采用的是散列表(hash表),其在最优情况下查询复杂度为O(1)。

以上这篇python中in在list和dict中查找效率的对比分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
Feb 13 Python
python实现随机调用一个浏览器打开网页
Apr 21 Python
python二维列表一维列表的互相转换实例
Jul 02 Python
Python通过paramiko远程下载Linux服务器上的文件实例
Dec 27 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
用uWSGI和Nginx部署Flask项目的方法示例
May 05 Python
PyTorch预训练的实现
Sep 18 Python
Python SELENIUM上传文件或图片实现过程
Oct 28 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
Mar 06 Python
Python运行异常管理解决方案
Mar 09 Python
什么是Python包的循环导入
Sep 08 Python
Python中常见的导入方式总结
May 06 Python
Django如何配置mysql数据库
May 04 #Python
Python实现求一个集合所有子集的示例
May 04 #Python
python list是否包含另一个list所有元素的实例
May 04 #Python
Python判断两个list是否是父子集关系的实例
May 04 #Python
python判断一个集合是否为另一个集合的子集方法
May 04 #Python
python3 判断列表是一个空列表的方法
May 04 #Python
python数字图像处理实现直方图与均衡化
May 04 #Python
You might like
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
laravel实现前后台路由分离的方法
2019/10/13 PHP
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
javaScript基础详解
2017/01/19 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
vue地址栏直接输入路由无效问题的解决
2018/11/15 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
python采用getopt解析命令行输入参数实例
2014/09/30 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
简单了解django文件下载方式
2020/02/10 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
Tensorflow使用Anaconda、pycharm安装记录
2020/07/29 Python
matplotlib实现数据实时刷新的示例代码
2021/01/05 Python
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
优秀演讲稿范文
2013/12/29 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
学生犯错保证书
2015/05/09 职场文书
《青山不老》教学反思
2016/02/22 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android