python获取指定字符串中重复模式最高的字符串方法


Posted in Python onJune 29, 2018

给定一个字符串,如何得到其中重复模式最高的子字符串,我采用的方法是使用滑窗机制,对给定的字符串切分,窗口的大小从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 相关文章推荐
为Python程序添加图形化界面的教程
Apr 29 Python
Python科学计算之Pandas详解
Jan 15 Python
Python加载带有注释的Json文件实例
May 23 Python
基于随机梯度下降的矩阵分解推荐算法(python)
Aug 31 Python
解决Python print输出不换行没空格的问题
Nov 14 Python
详解python持久化文件读写
Apr 06 Python
python版DDOS攻击脚本
Jun 12 Python
Django 接收Post请求数据,并保存到数据库的实现方法
Jul 12 Python
python opencv 检测移动物体并截图保存实例
Mar 10 Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 Python
解决Python安装cryptography报错问题
Sep 03 Python
python 动态绘制爱心的示例
Sep 27 Python
Python 利用内置set函数对字符串和列表进行去重的方法
Jun 29 #Python
Linux下python与C++使用dlib实现人脸检测
Jun 29 #Python
对python中两种列表元素去重函数性能的比较方法
Jun 29 #Python
Python数据持久化shelve模块用法分析
Jun 29 #Python
python 统计列表中不同元素的数量方法
Jun 29 #Python
python计算两个数的百分比方法
Jun 29 #Python
python统计字母、空格、数字等字符个数的实例
Jun 29 #Python
You might like
处理php自动反斜杠的函数代码
2010/01/05 PHP
php程序效率优化的一些策略小结
2010/07/17 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
2013/11/07 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
Thinkphp 中 distinct 的用法解析
2016/12/14 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
2013/11/07 Javascript
JavaScript中的undefined学习总结
2013/11/30 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
javascript实现多级联动下拉菜单的方法
2015/02/06 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
GWT都有什么特性
2016/12/02 面试题
银行青年文明号事迹材料
2014/05/31 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
MyBatis自定义SQL拦截器示例详解
2021/10/24 Java/Android
Go web入门Go pongo2模板引擎
2022/05/20 Golang