Python实现统计给定字符串中重复模式最高子串功能示例


Posted in Python onMay 16, 2018

本文实例讲述了Python实现统计给定字符串中重复模式最高子串功能。分享给大家供大家参考,具体如下:

给定一个字符串,如何得到其中重复模式最高的子字符串,我采用的方法是使用滑窗机制,对给定的字符串切分,窗口的大小从1增加到字符串长度减1,将所有的得到的切片统计结果,在这里不考虑单个字符的重复模式,好了,很简单看具体实现:

#!usr/binenv python
#encoding:utf-8
'''''
__Author__:沂水寒城
统计一个给定字符串中重复模式数量得到最高重复模式串
'''
def slice(num_str,w):
 '''''
 对输入的字符串滑窗切片返回结果列表
 '''
 result_list=[]
 for i in range(len(num_str)-w+1):
 result_list.append(num_str[i:i+w])
 return result_list
def get_repeat_num_seq(num_str):
 '''''
 统计重复模式串数量
 '''
 result_dict={}
 result_list=[]
 for i in range(2,len(num_str)):
 one_list=slice(num_str, i)
 result_list+=one_list
 for i in range(len(result_list)):
 if result_list[i] in result_dict:
  result_dict[result_list[i]]+=1
 else:
  result_dict[result_list[i]]=1
 sorted_result_dict=sorted(result_dict.items(), key=lambda e:e[1], reverse=True)
 return sorted_result_dict[0:10]
if __name__ == '__main__':
 num_list=get_repeat_num_seq('4513785645121214545454545457894')
 print num_list

结果如下:

[('45', 8), ('4545', 5), ('454', 5), ('545', 5), ('54', 5), ('5454', 4), ('454545', 4), ('45454', 4), ('54545', 4), ('545454', 3)]
[Finished in 0.5s]

结果列表中第一个即为所求,当然,基于此还可以继续改进有很多别的需求。

Python 相关文章推荐
Python对列表排序的方法实例分析
May 16 Python
python比较两个列表大小的方法
Jul 11 Python
Python编程中的for循环语句学习教程
Oct 14 Python
Python实现简易端口扫描器代码实例
Mar 15 Python
Python简单操作sqlite3的方法示例
Mar 22 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
Python进程池Pool应用实例分析
Nov 27 Python
python实现提取COCO,VOC数据集中特定的类
Mar 10 Python
在TensorFlow中实现矩阵维度扩展
May 22 Python
Numpy ndarray 多维数组对象的使用
Feb 10 Python
Python 图片处理库exifread详解
Feb 25 Python
Python下载商品数据并连接数据库且保存数据
Mar 31 Python
Python(Django)项目与Apache的管理交互的方法
May 16 #Python
Python检测网络延迟的代码
May 15 #Python
在windows下Python打印彩色字体的方法
May 15 #Python
一条命令解决mac版本python IDLE不能输入中文问题
May 15 #Python
Python切片索引用法示例
May 15 #Python
Python Json模块中dumps、loads、dump、load函数介绍
May 15 #Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 #Python
You might like
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
php微信开发之上传临时素材
2016/06/24 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
JavaScript实现左侧菜单效果
2017/12/14 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
详解Python字典的操作
2019/03/04 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
django框架中间件原理与用法详解
2019/12/10 Python
Python如何存储数据到json文件
2020/03/09 Python
keras的ImageDataGenerator和flow()的用法说明
2020/07/03 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
车队司机个人自我鉴定
2014/04/17 职场文书
关于环保的标语
2014/06/13 职场文书
大学专科求职信
2014/07/02 职场文书
关于教师节的广播稿
2015/08/19 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python
压缩Redis里的字符串大对象操作
2021/06/23 Redis