python关键字以什么开头_查找关键字以相同前缀开头的字典值的更有效方法
您可以避免生成dict.keys()(在python2.x中)生成的中间列表:result = [d[key] for key in d if key.startswith(query)]
但是您很可能希望使用trie而不是字典,这样您就可以找到与具有公共前缀的键相关联的所有值(trie类似于基于前缀的树)。在
Here您可以找到一些不同的尝试实现。在
A trie for keys "A", "to", "tea", "ted", "ten", "i", "in", and "inn". (source wikipedia)
让我们比较一下不同解决方案的时间安排:
^{pr2}$
# dict without keys()
%timeit [d[s] for s in d if s.startswith(query)]
100 loops, best of 3: 7.83 ms per loop
# 11.72% improvement# PyTrie (https://pypi.python.org/pypi/PyTrie/0.2)
import pytrie
pt = pytrie.Trie(d)
%timeit [pt[s] for s in pt.iterkeys(query)]
1000 loops, best of 3: 320 µs per loop
# 96.36% improvement# datrie (https://pypi.python.org/pypi/datrie/0.7)
import datrie
dt = datrie.Trie('0123456789')
for key, val in d.iteritems():
dt[unicode(key)] = val
%timeit [dt[s] for s in dt.keys(unicode(query))]
10000 loops, best of 3: 162 µs per loop
# 98.17% improvement
python关键字以什么开头_查找关键字以相同前缀开头的字典值的更有效方法相关推荐
- python 提高文件搜索效率_查找目标文件太慢了,用好搜索引擎,让你比Python找资源更快捷...
很多人听到Python编程语言时,都是它大名鼎鼎的"网络爬虫"名号,一个厉害的Python高手,可以在互联网中找到很多他需要的资源数据.其实Python的"爬虫" ...
- python画两条曲线_查找在matplotlib中绘制的两条曲线之间的区域(在区域之间填充)...
我有两条曲线的x和y值列表,它们都有奇怪的形状,而且我没有任何函数.我需要做两件事:(1)绘制它并对曲线之间的区域进行着色,如下图所示:(2)找到曲线之间该着色区域的总面积. 在matplotlib中 ...
- python统计列表中重复_查找统计python列表中的重复元素
如何快速的统计出那些是重复的呢? 形如aa=[1,2,2,3,2,4]的一个list,其中有重复元素,由于集合中重复元素无意义,所以 bb=list(set(aa))可很容易得到去除重复的列表[1,2 ...
- python画简易动物画法_查找「画小动物最简单画法」安卓应用 - 豌豆荚
288.1万人安装 专属宝宝的动物园开放咯~快来陪小动物玩耍吧!在玩耍中认识他们,和他们交朋友并了解它们!让宝宝成为人人夸赞的动物小专家! [超多小动物]:来自世界各地的小动物们共同生活在宝宝巴士的动 ...
- mysql替换开头_如何在MySQL的字符串开头搜索和替换特定字符?
为此,您可以使用INSERT().让我们首先创建一个表-mysql> create table DemoTable -> ( -> ZipCode varchar(200) -> ...
- python提交表单无效_使用Django Form解决表单数据无法动态刷新的两种方法
一.无法动态更新数据的实例 1. 如下,数据库中创建了班级表和教师表,两张表的对应关系为"多对多" from django.db import models class Class ...
- python合并两个属性_合并两个部分包含文件列表及其属性的最有效方法
我有一个系统,该系统运行带有ls或dir命令的变体的自定义cli,并返回工作目录中文件和文件夹的列表. 问题是,我可以使用带标志的命令运行命令,该标志返回文件及其时间戳(创建和最后修改的日期),或者返 ...
- base-64 字符串中的无效字符。_查找字符串中连续不重复最长字符串和长度的方法...
1.思路 2.结果 字符串:abacbefkb 开始遍历: 链表的变化情况: a:长度:1 链表:[a] b:长度:2 链表:[a,b] a:长度:2 链表:[b,a] c:长度:3 链表:[b,a, ...
- 果园机器人作文开头_易学好用的万能开头—热点事件引入式
作文写作一直是小伙伴们老大难的问题,大白通过近四年的教学发现,提高申论作文写作能力的捷径,就是毫米级的模仿练习.什么是毫米级的模仿练习?请戳下方链接 通往作文高手的捷径:看"小明" ...
最新文章
- Kooboo CMS - Html.FrontHtml.Position 详解
- Spring-Retry重试实现原理
- c#中去掉字符串空格方法
- mysql瓶颈分析_网站瓶颈分析—MYSQL性能分析
- 我看到东边的阳光就这样照进车窗
- Win03+IIS6 部署.NetFramework4(ASP.NET4)的一点小经验
- [转载] [转载] numpy功能快速查找
- FFmpeg获取H264文件的帧率
- Rhino(犀牛)的视口
- 马化腾的马氏建议:“小步快跑 快速迭代”
- 微信公众平台测试号的申请与使用
- Rabbitmq 安全账号管理方案
- AirtestIDE1.2.13的安卓手机设置自动初始化功能
- Windows光盘映像刻录机设置---Windows资源管理器
- 编写shell脚本,输入一个数字n并计算1~n的和。要求:输入的数字不能小于1和空。
- 【笨木头Lua专栏】基础补充05:迭代器番外篇
- python 三方库字典
- Python实现最小二乘法拟合直线(求斜率截距)
- 使用protege过程中的一些小技巧
- 做好织梦dedecms安全防护全部方法
热门文章
- 蒸汽朋克简单图形免扣PNG素材,让设计艺术变得简单
- token 微信access 过期_如何设计 QQ、微信等第三方账号登陆 ?以及设计数据库表!...
- velodyne显示点云中grid的单位_孝感好的舞台背景显示屏施工创新服务_胜辉屏安...
- insert into 时间_值得花点时间背记的out of有关短语
- Windows监听进程的两个函数
- Python--面向对象学习继承(11.17)
- 监控和调整Linux网络协议栈的图解指南:接收数据
- OpenSubdiv:大规模并行CPU和GPU架构上实现高性能细分表面
- clickhouse原理解析与应用实践 pdf_阿里专家分享内部绝密RocketMQ核心原理与最佳实践PDF...
- python的基础集合(八)