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中各种方法的运作原理
Jun 15 Python
Python 高级专用类方法的实例详解
Sep 11 Python
python微信公众号开发简单流程
Mar 23 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
Apr 22 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
May 07 Python
Python 实现还原已撤回的微信消息
Jun 18 Python
python for和else语句趣谈
Jul 02 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
PIP和conda 更换国内安装源的方法步骤
Sep 21 Python
python模拟点击在ios中实现的实例讲解
Nov 26 Python
python中xlrd模块的使用详解
Feb 01 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获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
javascript实现连续赋值
2015/08/10 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
BootStrap Fileinput上传插件使用实例代码
2017/07/28 Javascript
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
详解从Vue-router到html5的pushState
2018/07/21 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
python 连接sqlite及简单操作
2017/06/30 Python
Python 装饰器使用详解
2017/07/29 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
利用Python产生加密表和解密表的实现方法
2019/10/15 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
在keras中实现查看其训练loss值
2020/06/16 Python
Python类成员继承重写的实现
2020/09/16 Python
大学自我鉴定范文
2013/12/26 职场文书
部队党性分析材料
2014/02/16 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
公务员学习习总书记“三严三实”思想汇报
2014/09/19 职场文书
防火标语大全
2014/10/06 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
2014流动人口计划生育工作总结
2014/12/20 职场文书
迟到检讨书
2015/01/26 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
工商局调档介绍信
2015/10/22 职场文书