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的Supervisor进行进程监控以及自动启动
May 29 Python
使用Python的Flask框架实现视频的流媒体传输
Mar 31 Python
Python实现连接postgresql数据库的方法分析
Dec 27 Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 Python
django框架使用方法详解
Jul 18 Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 Python
python中bytes和str类型的区别
Oct 21 Python
使用Python刷淘宝喵币(低阶入门版)
Oct 30 Python
python实现ftp文件传输功能
Mar 20 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 Python
Python绘制组合图的示例
Sep 18 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 无线电
Yii中的cookie的发送和读取
2016/07/27 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
JavaScript 学习技巧
2010/02/17 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
2017/03/02 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
2018/02/08 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
浅谈Python浅拷贝、深拷贝及引用机制
2016/12/15 Python
Python实现ping指定IP的示例
2018/06/04 Python
Python中整数的缓存机制讲解
2019/02/16 Python
Python assert关键字原理及实例解析
2019/12/13 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
行政总经理岗位职责
2013/12/05 职场文书
韩国商务邀请函
2014/01/14 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
职工代表大会主持词
2014/04/01 职场文书
领导干部保密承诺书
2014/08/30 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
2017年大学生寒假社会实践活动总结
2016/04/06 职场文书