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 IDLE加上自动补全和历史功能
Nov 30 Python
windows 下python+numpy安装实用教程
Dec 23 Python
python2.7 json 转换日期的处理的示例
Mar 07 Python
python 实现selenium断言和验证的方法
Feb 13 Python
Python子类继承父类构造函数详解
Feb 19 Python
Python获取一个用户名的组ID过程解析
Sep 03 Python
Mac 使用python3的matplot画图不显示的解决
Nov 23 Python
Python super()函数使用及多重继承
May 06 Python
Python scrapy爬取小说代码案例详解
Jul 09 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
Jul 21 Python
Django自带的用户验证系统实现
Dec 18 Python
Python中对象的比较操作==和is区别详析
Feb 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 cron中的批处理
2008/09/16 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
PHP文件下载实例代码浅析
2016/08/17 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
PHP7 foreach() 函数修改
2021/03/09 PHP
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
javascript将DOM节点添加到文档的方法实例分析
2015/08/04 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
Python 第一步 hello world
2009/09/25 Python
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
Python的时间模块datetime详解
2017/04/17 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
Python partial函数原理及用法解析
2019/12/11 Python
python实现单张图像拼接与批量图片拼接
2020/03/23 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
保研专家推荐信范文
2015/03/25 职场文书
整改通知书格式
2015/04/22 职场文书
Pygame Rect区域位置的使用(图文)
2021/11/17 Python