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定时检查启动某个exe程序适合检测exe是否挂了
Jan 21 Python
Python运行报错UnicodeDecodeError的解决方法
Jun 07 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
python 把列表转化为字符串的方法
Oct 23 Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 Python
Python向excel中写入数据的方法
May 05 Python
Python collections中的双向队列deque简单介绍详解
Nov 04 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
Dec 09 Python
python如何判断IP地址合法性
Apr 05 Python
keras topN显示,自编写代码案例
Jul 03 Python
Python 实现将某一列设置为str类型
Jul 14 Python
使用PyCharm安装pytest及requests的问题
Jul 31 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中使用crypt()实现用户身份验证的代码
2012/09/05 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
基于jQuery的history历史记录插件
2010/12/11 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
2016/12/07 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
javascript实现复选框全选或反选
2017/02/04 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
python函数缺省值与引用学习笔记分享
2013/02/10 Python
分析Python中解析构建数据知识
2018/01/20 Python
TensorFlow saver指定变量的存取
2018/03/10 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
2018/05/08 Python
python sys.argv[]用法实例详解
2018/05/25 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
python中os包的用法
2020/06/01 Python
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
应届生法律顾问求职信
2013/11/19 职场文书
《猫》教学反思
2014/02/26 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
针对吵架老公保证书
2015/05/08 职场文书
PHP控制循环操作的时间
2021/04/01 PHP
一文读懂go中semaphore(信号量)源码
2021/04/03 Golang