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中的面向对象编程详解(下)
Apr 13 Python
python:socket传输大文件示例
Jan 18 Python
Python中定时任务框架APScheduler的快速入门指南
Jul 06 Python
Python解析并读取PDF文件内容的方法
May 08 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
基于python二叉树的构造和打印例子
Aug 09 Python
Python 使用type来定义类的实现
Nov 19 Python
基于python实现蓝牙通信代码实例
Nov 19 Python
Python基于Tensor FLow的图像处理操作详解
Jan 15 Python
tensorflow对图像进行拼接的例子
Feb 05 Python
Python绘制散乱的点构成的图的方法
Apr 21 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 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的一个完整SMTP类(解决邮件服务器需要验证时的问题)
2006/10/09 PHP
php db类库进行数据库操作
2009/03/19 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
javascript 定义初始化数组函数
2009/09/07 Javascript
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
Bootstrap每天必学之滚动监听
2016/03/16 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
Python编写检测数据库SA用户的方法
2014/07/11 Python
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
详解C++编程中一元运算符的重载
2016/01/19 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
建议书标准格式
2014/03/12 职场文书
班级标语大全
2014/06/21 职场文书
片区教研活动总结
2014/07/02 职场文书
销售顾问工作计划书
2014/09/15 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书