Python数据结构与算法之字典树实现方法示例

 更新时间:2017年12月13日 11:24:51   作者:hanahimi  
这篇文章主要介绍了Python数据结构与算法之字典树实现方法,可实现针对单词出现次数的统计功能,涉及Python树结构的定义、遍历及统计等相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python数据结构与算法之字典树实现方法。分享给大家供大家参考,具体如下:

class TrieTree():
  def __init__(self):
    self.root = {}
  def addNode(self,str):
    # 树中每个结点(除根节点),包含到该结点的单词数,以及该结点后面出现字母的键
    nowdict = self.root
    for i in range(len(str)):
      if str[i] not in nowdict:  # 发现新的组合方式
        nowdict[str[i]] = {'count':0,'prefix':str[:i+1]}
      nowdict = nowdict[str[i]]  # 转移到下一个结点
    nowdict['count'] += 1
  def countWord(self,str):
    # 返回输入单词在树中出现的次数
    nowdict = self.root
    for s in str:
      if s not in nowdict:
        return 0
      nowdict = nowdict[s]  # 匹配当前结点,转下一个结点
    # 到了这一步证明单词存在
    return nowdict['count']
if __name__=="__main__":
  pass
  Text = ['b','abc','abd','bcd','abcd','efg','hii','bcd']
  t = TrieTree()
  for str in Text:
    t.addNode(str)
  print t.countWord('bcd')
>>> 2

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Django rest framework工具包简单用法示例

    Django rest framework工具包简单用法示例

    这篇文章主要介绍了Django rest framework工具包简单用法,结合匿名访问控制的具体实例分析了Django rest framework工具包的注册、路由设置、视图、权限控制、配置等相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • python如何读取bin文件并下发串口

    python如何读取bin文件并下发串口

    这篇文章主要介绍了python如何读取bin文件并下发串口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python机器学习实战之K均值聚类

    python机器学习实战之K均值聚类

    这篇文章主要为大家详细介绍了python机器学习实战之K均值聚类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法

    python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法

    今天小编就为大家分享一篇python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Opencv中cv2.floodFill算法的使用

    Opencv中cv2.floodFill算法的使用

    本文结合实例,详细的介绍了泛洪填充算法的具体使用,具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • 全面解析python当前路径和导包路径问题

    全面解析python当前路径和导包路径问题

    这篇文章主要为大家介绍了python当前路径和导包路径问题的全面解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Kmeans均值聚类算法原理以及Python如何实现

    Kmeans均值聚类算法原理以及Python如何实现

    这个算法中文名为k均值聚类算法,首先我们在二维的特殊条件下讨论其实现的过程,方便大家理解。
    2020-09-09
  • Python一键生成核酸检测日历的操作代码

    Python一键生成核酸检测日历的操作代码

    这篇文章主要介绍了Python一键生成核酸检测日历,本文以深圳为例,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • 详解Python装饰器由浅入深

    详解Python装饰器由浅入深

    装饰器的功能在很多语言中都有,名字也不尽相同,其实它体现的是一种设计模式,强调的是开放封闭原则,更多的用于后期功能升级而不是编写新的代码。本文尽量描述得浅显易懂,从最基础的内容讲起。
    2016-12-12
  • PyCharm搭建Spark开发环境实现第一个pyspark程序

    PyCharm搭建Spark开发环境实现第一个pyspark程序

    这篇文章主要介绍了PyCharm搭建Spark开发环境实现第一个pyspark程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06

最新评论