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和bash统计CPU利用率的方法
Jul 10 Python
python实现简单中文词频统计示例
Nov 08 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
Dec 18 Python
python读取txt文件中特定位置字符的方法
Dec 24 Python
对python3 sort sorted 函数的应用详解
Jun 27 Python
centos 安装Python3 及对应的pip教程详解
Jun 28 Python
python删除文件夹下相同文件和无法打开的图片
Jul 16 Python
python实现回旋矩阵方式(旋转矩阵)
Dec 04 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
Pytorch 卷积中的 Input Shape用法
Jun 29 Python
python数字图像处理之图像自动阈值分割示例
Jun 28 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
Symfony2函数用法实例分析
2016/03/18 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
Js中的onblur和onfocus事件应用介绍
2013/08/27 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
AngularJS控制器controller正确的通信的方法
2016/01/25 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
ES6新特征数字、数组、字符串
2016/10/01 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
2017/04/10 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
微信小程序实现上传图片裁剪图片过程解析
2019/08/22 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
举例讲解Python中装饰器的用法
2015/04/27 Python
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
Python开发的实用计算器完整实例
2017/05/10 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python实现一个简单的ping工具方法
2019/01/31 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
python 画图 图例自由定义方式
2020/04/17 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
小学教师师德反思
2014/02/03 职场文书
合伙经营协议书
2014/04/18 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
给下属加薪申请报告
2015/05/15 职场文书
JavaScript 定时器详情
2021/11/11 Javascript