如果要重复执行此操作,应创建一个索引:wordlist = [word.strip() for word in "run, ran, rat, rob, fish, tree".split(',')]

from collections import defaultdict

class Index(object):

def __init__(self, wordlist=()):

self.trie = defaultdict(set)

for word in wordlist:

self.add_word(word)

def add_word(self, word):

""" adds word to the index """

# save the length of the word

self.trie[len(word)].add(word)

for marker in enumerate(word):

# add word to the set of words with (pos,char)

self.trie[marker].add(word)

def find(self, pattern, wildcard='-' ):

# get all word with matching length as candidates

candidates = self.trie[len(pattern)]

# get all words with all the markers

for marker in enumerate(pattern):

if marker[1] != wildcard:

candidates &= self.trie[marker]

# exit early if there are no candicates

if not candidates:

return None

return candidates

with open('dict.txt', 'rt') as lines:

wordlist = [word.strip() for word in lines]

s = Index(wordlist)

print s.find("r--")

Tries用于搜索字符串。这是一个简单的前缀trie,使用一个dict

python 如何匹配列表中某个单词_Python中部分指定单词的最佳匹配项相关推荐

  1. python如何判断列表是否为空_Python中如何检查字符串/列表是否为空

    本文最后更新于2018年5月5日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢! =Start= 缘由: 整理.记录.备忘 正文: 参考解答: 从dict中取值时,一定要使用.get( ...

  2. python 正则匹配 条件太多怎么办_Python中正则表达式的巧妙使用

    原标题:Python中正则表达式的巧妙使用 源 /数据分析1480文 /刘顺祥 前言 正则表达式就是从字符串中发现规律,并通过"抽象"的符号表达出来.打个比方,对于2,5,10,1 ...

  3. python列表怎么写文件_python中以字典为元素的列表怎么写入文本文件

    python如何将列表中的元素添加进字典纵然被命运的铁蹄狠狠践踏,也顽强地长出自己的根芽. 录入自己和另一个人的名字的汉语拼音简写,然后依据标识符中字母的数值两个人,一颗心,依偎的不是爱情而是那小温暖 ...

  4. python统计列表中元素个数_python中计算一个列表中连续相同的元素个数方法

    python中计算一个列表中连续相同的元素个数方法 最简单的例子: a = [1,1,1,1,2,2,2,3,3,1,1,1,3] # 问:计算a中最多有几个连续的1 很明显,答案是4 如果用代码实现 ...

  5. python中re模块_Python中re(正则表达式)模块学习

    今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍Python中常用的正则表达式处理函数. re.match re.match 尝试从 ...

  6. python如何判断列表是否为空_python简单判断序列是否为空的方法

    python简单判断序列是否为空的方法 本文实例讲述了python简单判断序列是否为空的方法.分享给大家供大家参考.具体如下: 假设有如下序列: m1 = [] m2 = () m3 = {} 判断他 ...

  7. python中定义数据结构_Python中的数据结构—简介

    python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...

  8. python中怎样向字典中添加值_python中向一个字典中加值

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 开发准备cas 的 python sdk 包含了用于访问和操作 cas 的所有 ...

  9. python闭包和装饰器的区别_python中闭包和装饰器的理解(关于python中闭包和装饰器解释最好的文章)。(转)...

    呵呵!作为一名教python的老师,我发现学生们基本上一开始很难搞定python的装饰器,也许因为装饰器确实很难懂.搞定装饰器需要你了解一些函数式编程的概念,当然还有理解在python中定义和调用函数 ...

  10. python中sys用法_python中os和sys模块的区别与常用方法总结

    python 的 python中os和sys模块的区别与常用方法总结 前言 本文主要介绍了关于python中os和sys模块区别与常用方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看 ...

最新文章

  1. 减少Android staido 占用C 盘
  2. ppt格式刷快捷键_高效地制作PPT
  3. Hadoop系列一:Hadoop集群分布式部署
  4. windows下编译基于nginx插件的rtmp流媒体服务nginx-rtmp
  5. 寒假每日一题2022【week1 完结】
  6. 牛客2021年愚人节比赛 【题解】
  7. iptables之iptables命令详解
  8. 242.判断一个字符串是否为另一个的乱序 Valid Anagram
  9. php设置http请求头信息和响应头信息
  10. 如何实现一个遵从设计原则的积分兑换系统2
  11. 麦克风阵列技术 二 (自动增益控制 自动噪声抑制 回声消除 语音活动检测)
  12. 【我的Android进阶之旅】 解决Android编译出现问题:AAPT: error: resource string/xxx (aka xxx:string/xxx) not found.
  13. 借贷行业,还有明天吗?
  14. Typora标题增加序号
  15. 301代码php代码在哪里加,301转向设置及代码及方法详解
  16. 计算机是如何跑起来的百度云,《程序是怎样跑起来的》(下)
  17. Android Studio上Kotlin的入门,移动应用系统开发
  18. 【图灵杯 J】简单的变位词
  19. 汽车凸轮轴的拆装过程
  20. Ox00xxxx指令引用的0x00000001内存,该内存不能为read

热门文章

  1. PyCharm运行出现 Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run
  2. 手把手带你玩转Tensorflow 物体检测 API (1)——运行实例
  3. 切割图形_泉州泡沫景观字切割机厂家
  4. 电脑配置多个git账号
  5. 数字图像处理基础与应用 第五章
  6. 识别产品外观的合格软件_你还在犹豫?外观检测设备使用已成主流!
  7. 如何修改操作系统运行服务器,如何设置Bios 最常见bios设置与修改详细图解教程...
  8. cups源码下载 linux_【正点原子FPGA连载】第九章Linux显示设备的使用-领航者ZYNQ之linux开发指南...
  9. win8无线网络受限怎么办 win8网络受限的解决方法
  10. 联想sr950配置raid卡_联想ThinkServerrd服务器raid卡设置教程LSIiraid卡设置教程