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进阶教程之函数参数的多种传递方法
Aug 30 Python
Python数据结构之Array用法实例
Oct 09 Python
Python实现批量更换指定目录下文件扩展名的方法
Sep 19 Python
python实现微信小程序自动回复
Sep 10 Python
python抓取京东小米8手机配置信息
Nov 13 Python
Python元组知识点总结
Feb 18 Python
python 猴子补丁(monkey patch)
Jun 26 Python
Python3enumrate和range对比及示例详解
Jul 13 Python
Python 实现打印单词的菱形字符图案
Apr 12 Python
keras自定义回调函数查看训练的loss和accuracy方式
May 23 Python
python super()函数的基本使用
Sep 10 Python
python爬虫之爬取笔趣阁小说
Apr 22 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
PHP strtr() 函数使用说明
2008/11/21 PHP
有关php运算符的知识大全
2011/11/03 PHP
解析PHP多种序列化与反序列化的方法
2013/06/06 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
移动适配的几种方案(三种方案)
2016/11/25 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
简单谈谈axios中的get,post方法
2017/06/25 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
JS实现求5的阶乘示例
2019/01/21 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
Python Queue模块详解
2014/11/30 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
Python中Threading用法详解
2017/12/27 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
浅谈tensorflow之内存暴涨问题
2020/02/05 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
最新pycharm安装教程
2020/11/18 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
校园门卫岗位职责
2013/12/09 职场文书
《乡愁》教学反思
2014/02/18 职场文书
优秀家长自荐材料
2014/08/26 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
python缺失值填充方法示例代码
2022/12/24 Python