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 linecache.getline()读取文件中特定一行的脚本
Sep 06 Python
python访问sqlserver示例
Feb 10 Python
python求众数问题实例
Sep 26 Python
python实现查询IP地址所在地
Mar 29 Python
在Python的Django框架中显示对象子集的方法
Jul 21 Python
使用Python编写一个最基础的代码解释器的要点解析
Jul 12 Python
值得收藏,Python 开发中的高级技巧
Nov 23 Python
Python根据欧拉角求旋转矩阵的实例
Jan 28 Python
在自动化中用python实现键盘操作的方法详解
Jul 19 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
Python列表切片常用操作实例解析
Mar 10 Python
Django自带用户认证系统使用方法解析
Nov 12 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加密解密示例分享
2014/01/29 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
JS DOMReady事件的六种实现方法总结
2016/11/23 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
利用Decorator如何控制Koa路由详解
2018/06/26 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
Python设计模式之代理模式实例
2014/04/26 Python
python实现定制交互式命令行的方法
2014/07/03 Python
Python类的用法实例浅析
2015/05/27 Python
python中map的基本用法示例
2018/09/10 Python
python在html中插入简单的代码并加上时间戳的方法
2018/10/16 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
jupyter 导入csv文件方式
2020/04/21 Python
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
荷兰电脑专场:Paradigit
2018/05/05 全球购物
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
防灾减灾活动总结
2014/08/30 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
针对吵架老公保证书
2015/05/08 职场文书
微观世界观后感
2015/06/10 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
2016年“我们的节日·端午节”活动总结
2016/04/01 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫