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 相关文章推荐
在Gnumeric下使用Python脚本操作表格的教程
Apr 14 Python
Python3里的super()和__class__使用介绍
Apr 23 Python
python3编码问题汇总
Sep 06 Python
Python及PyCharm下载与安装教程
Nov 18 Python
python TCP Socket的粘包和分包的处理详解
Feb 09 Python
Python3模拟curl发送post请求操作示例
May 03 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
pycharm实现在子类中添加一个父类没有的属性
Mar 12 Python
如何让python的运行速度得到提升
Jul 08 Python
解决redis与Python交互取出来的是bytes类型的问题
Jul 16 Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 Python
python 基于opencv 实现一个鼠标绘图小程序
Dec 11 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实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
php下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
php阳历转农历优化版
2016/08/08 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
浅谈Python处理PDF的方法
2017/11/10 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
python 生成图形验证码的方法示例
2018/11/11 Python
python实时获取外部程序输出结果的方法
2019/01/12 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
HR喜欢的自荐信格式
2013/10/08 职场文书
幼师自我鉴定
2014/02/01 职场文书
协议书与合同的区别
2014/04/18 职场文书
员工薪酬激励方案
2014/06/13 职场文书
项目合作意向书模板
2014/07/29 职场文书
2015学校年度工作总结
2015/05/11 职场文书
居安思危观后感
2015/06/11 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书