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 相关文章推荐
在Windows8上的搭建Python和Django环境
Jul 03 Python
python实现快速排序的示例(二分法思想)
Mar 12 Python
Python中的单继承与多继承实例分析
May 10 Python
python 实现倒排索引的方法
Dec 25 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
python的pytest框架之命令行参数详解(下)
Jun 27 Python
python logging日志模块原理及操作解析
Oct 12 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
python中wx模块的具体使用方法
May 15 Python
用python实现一个简单计算器(完整DEMO)
Oct 14 Python
python代码实现猜拳小游戏
Nov 30 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
Jan 13 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
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
PHP面向对象概念
2011/11/06 PHP
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
Node.js实用代码段之正确拼接Buffer
2016/03/17 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
Node.js的进程管理的深入理解
2019/01/09 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
python顺序执行多个py文件的方法
2019/06/29 Python
python查看数据类型的方法
2019/10/12 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
python标准库OS模块详解
2020/03/10 Python
Python 保存加载mat格式文件的示例代码
2020/08/04 Python
Python接口自动化测试框架运行原理及流程
2020/11/30 Python
Django url 路由匹配过程详解
2021/01/22 Python
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
关于.NET, HTML的五个问题
2012/08/29 面试题
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
全国法制宣传日活动总结2014
2014/11/01 职场文书
钱学森观后感
2015/06/04 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript
vue实现锚点定位功能
2021/06/29 Vue.js