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获取任意xml节点值的方法
May 05 Python
python中的编码知识整理汇总
Jan 26 Python
python3+PyQt5实现自定义窗口部件Counters
Apr 20 Python
python通过ffmgep从视频中抽帧的方法
Dec 05 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
Apr 15 Python
Python实战之制作天气查询软件
May 14 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
Jul 10 Python
python matplotlib库绘制条形图练习题
Aug 10 Python
Python爬取阿拉丁统计信息过程图解
May 12 Python
在keras中model.fit_generator()和model.fit()的区别说明
Jun 17 Python
使用Python Tkinter实现剪刀石头布小游戏功能
Oct 23 Python
Python爬虫定时计划任务的几种常见方法(推荐)
Jan 15 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
ASP知识讲座四
2006/10/09 PHP
使用PHP 5.0创建图形的巧妙方法
2010/10/12 PHP
php版微信自定义回复功能示例
2016/12/05 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
php二维码生成以及下载实现
2017/09/28 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
通过隐藏iframe实现无刷新上传文件操作
2016/03/16 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
微信小程序 开发MAP(地图)实例详解
2017/06/27 Javascript
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
python实现画循环圆
2019/11/23 Python
Python读取csv文件实例解析
2019/12/30 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
结构工程个人自荐信范文
2013/11/30 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
个人学习党的群众路线教育实践活动心得体会
2014/11/05 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
盗窃案辩护词
2015/05/21 职场文书
三八妇女节主持词
2015/07/04 职场文书
超市主管竞聘书
2015/09/15 职场文书