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制作一个桌面便签软件
Aug 09 Python
python开发之文件操作用法实例
Nov 13 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
Jul 08 Python
Python中的错误和异常处理简单操作示例【try-except用法】
Jul 25 Python
Python将多个excel文件合并为一个文件
Jan 03 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
python处理“
Jun 10 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
python3中使用__slots__限定实例属性操作分析
Feb 14 Python
django模板获取list中指定索引的值方式
May 14 Python
Python嵌入C/C++进行开发详解
Jun 09 Python
关于python中readlines函数的参数hint的相关知识总结
Jun 24 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
PHP面向对象编程快速入门
2006/12/14 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
2011/12/14 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
jquery 取子节点及当前节点属性值的方法
2014/08/24 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
python中xrange和range的区别
2014/05/13 Python
Python比较两个图片相似度的方法
2015/03/13 Python
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
Python中常用的内置方法
2019/01/28 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
2021/02/06 Python
房地产销售计划书
2014/01/10 职场文书
建筑系毕业生自我鉴定
2014/01/24 职场文书
主持词开场白
2014/03/17 职场文书
雏鹰争章活动总结
2014/05/09 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
紧急通知
2015/04/17 职场文书
法院答辩状格式
2015/05/22 职场文书
烈士陵园观后感
2015/06/08 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
Python pygame实现中国象棋单机版源码
2021/06/20 Python