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获取网页上图片下载地址的方法
Mar 11 Python
Python编写一个闹钟功能
Jul 11 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
python实现五子棋游戏
Jun 18 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
python 实现仿微信聊天时间格式化显示的代码
Apr 17 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
解决pycharm安装第三方库失败的问题
May 09 Python
pycharm专业版远程登录服务器的详细教程
Sep 15 Python
Python使用grequests并发发送请求的示例
Nov 05 Python
flask框架中的cookie和session使用
Jan 31 Python
教你怎么用Python生成九宫格照片
May 20 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 编写大型网站问题集
2010/05/07 PHP
php数字转汉字代码(算法)
2011/10/08 PHP
PHP与Java进行通信的实现方法
2013/10/21 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
学习php设计模式 php实现适配器模式
2015/12/07 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
JavaScript 计算图片加载数量的代码
2011/01/01 Javascript
firebug的一个有趣现象介绍
2011/11/30 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
vue仿ios列表左划删除
2019/09/26 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
python+pygame简单画板实现代码实例
2017/12/13 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
Python气泡提示与标签的实现
2020/04/01 Python
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
2013/02/04 HTML / CSS
纪检干部现实表现材料
2014/08/21 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
客户付款通知书
2015/04/23 职场文书
周一问候语大全
2015/11/10 职场文书
党员干部学习心得体会
2016/01/23 职场文书
导游词之香港-太平山顶
2019/10/18 职场文书
Python中requests做接口测试的方法
2021/05/30 Python