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中unittest模块做UT(单元测试)使用实例
Jun 12 Python
Python解析json文件相关知识学习
Mar 01 Python
Python实现简单的HttpServer服务器示例
Sep 25 Python
vscode 远程调试python的方法
Dec 01 Python
python抓取网页中链接的静态图片
Jan 29 Python
使用requests库制作Python爬虫
Mar 25 Python
对Python3中的print函数以及与python2的对比分析
May 02 Python
Python简单处理坐标排序问题示例
Jul 11 Python
python3使用print打印带颜色的字符串代码实例
Aug 22 Python
pandas DataFrame运算的实现
Jun 14 Python
Tensorflow--取tensorf指定列的操作方式
Jun 30 Python
python开根号实例讲解
Aug 30 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
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
关于jQuery判断元素是否存在的问题示例探讨
2014/07/21 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
js实现消息滚动效果
2017/01/18 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
使用pdb模块调试Python程序实例
2015/06/02 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
详解django自定义中间件处理
2018/11/21 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
Python:slice与indices的用法
2019/11/25 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
python实现人机猜拳小游戏
2020/02/03 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
css3实现垂直下拉动画菜单示例
2014/04/22 HTML / CSS
极简鞋类,赤脚的感觉:Lems Shoes
2019/08/06 全球购物
介绍Ibatis的核心类
2013/11/18 面试题
大学生求职信范文应怎么写
2014/01/01 职场文书
酒店个人求职信范文
2014/01/25 职场文书
西安交大自主招生自荐信
2014/01/27 职场文书
酒店保安领班职务说明书
2014/03/04 职场文书
生态养殖创业计划书
2014/05/06 职场文书
会计专业应届生自荐信
2014/06/28 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
食品药品安全责任书
2015/05/11 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL