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之重回函数
Oct 10 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
如何在python中使用selenium的示例
Dec 26 Python
Python设计模式之命令模式简单示例
Jan 10 Python
python生成密码字典的方法
Jul 06 Python
Python OpenCV处理图像之图像像素点操作
Jul 10 Python
python3.7 的新特性详解
Jul 25 Python
Django项目基础配置和基本使用过程解析
Nov 25 Python
如何给Python代码进行加密
Jan 10 Python
如何使用python代码操作git代码
Feb 29 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 20 Python
python数据分析之单因素分析线性拟合及地理编码
Jun 25 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判断邮箱地址是否存在的方法
2016/02/13 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
JS自动适应的图片弹窗实例
2013/06/29 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
详解微信UnionID作用
2019/05/15 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
[01:03:03]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
深入理解Python中字典的键的使用
2015/08/19 Python
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
python实现rsa加密实例详解
2017/07/19 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
Selenium鼠标与键盘事件常用操作方法示例
2018/08/13 Python
Python实现FTP弱口令扫描器的方法示例
2019/01/31 Python
python变量命名的7条建议
2019/07/04 Python
Python字符串及文本模式方法详解
2020/09/10 Python
python -v 报错问题的解决方法
2020/09/15 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
Perfume’s Club意大利官网:欧洲美妆电商
2019/05/03 全球购物
2014年父亲节活动方案
2014/03/06 职场文书
品质标语大全
2014/06/21 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python
Python turtle编写简单的球类小游戏
2022/03/31 Python