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排序算法实例代码
Aug 10 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 Python
Python3.x爬虫下载网页图片的实例讲解
May 22 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
Jun 18 Python
Python PyCharm如何进行断点调试
Jul 05 Python
详解python中index()、find()方法
Aug 29 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
python爬取代理IP并进行有效的IP测试实现
Oct 09 Python
python通过新建环境安装tfx的问题
May 20 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
上海无线电三厂简史修改版
2021/03/01 无线电
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
webstorm中vue语法的支持详解
2018/05/09 Javascript
chosen实现省市区三级联动
2018/08/16 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
python编写微信远程控制电脑的程序
2018/01/05 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
英语翻译系毕业生求职信
2013/09/29 职场文书
班组长的岗位职责
2013/12/09 职场文书
五四演讲稿范文
2014/09/03 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书