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实现颜色rgb和hex相互转换的函数
Mar 19 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
python 定时器,轮询定时器的实例
Feb 20 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
May 28 Python
详解Python Qt的窗体开发的基本操作
Jul 14 Python
利用pyecharts实现地图可视化的例子
Aug 12 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
Oct 24 Python
200行python代码实现贪吃蛇游戏
Apr 24 Python
Python Scrapy图片爬取原理及代码实例
Jun 12 Python
Django项目如何正确配置日志(logging)
Apr 29 Python
如何理解及使用Python闭包
Jun 01 Python
Python list列表删除元素的4种方法
Nov 01 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性能优化 产生高度优化代码
2011/07/22 PHP
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
Yii2框架dropDownList下拉菜单用法实例分析
2016/07/18 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
asp批量修改记录的代码
2008/06/25 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
js序列化和反序列化的使用讲解
2019/01/19 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
在Python中使用成员运算符的示例
2015/05/13 Python
Python Socket传输文件示例
2017/01/16 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
python 为什么说eval要慎用
2019/03/26 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
Python中zip函数如何使用
2020/06/04 Python
python中PyQuery库用法分享
2021/01/15 Python
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
Vilebrequin欧洲官网:法国豪华泳装品牌(男士沙滩裤)
2018/04/14 全球购物
MADE法国:提供原创设计师家具
2018/09/18 全球购物
Allen Edmonds官方网站:一家美国优质男士鞋类及配饰制造商
2019/03/12 全球购物
电子商务专业毕业生工作推荐信
2013/11/17 职场文书
《夸父追日》教学反思
2014/02/26 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
教你如何使用Python Tkinter库制作记事本
2021/06/10 Python