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爬虫系列Selenium定向爬取虎扑篮球图片详解
Nov 15 Python
Python实现随机生成手机号及正则验证手机号的方法
Apr 25 Python
django js实现部分页面刷新的示例代码
May 28 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
Feb 17 Python
python实现自动化上线脚本的示例
Jul 01 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
Dec 19 Python
使用python处理题库表格并转化为word形式的实现
Apr 14 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
python else语句在循环中的运用详解
Jul 06 Python
scrapy处理python爬虫调度详解
Nov 23 Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 11 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
德劲1103二次变频版的打磨
2021/03/02 无线电
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
2015/12/24 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
vue 获取元素额外生成的data-v-xxx操作
2020/09/09 Javascript
利用H5api实现时钟的绘制(javascript)
2020/09/13 Javascript
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
硕士研究生自我鉴定范文
2013/12/27 职场文书
校园学雷锋活动月总结
2014/03/09 职场文书
合作意向书格式及范文
2014/03/31 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
企业理念标语
2014/06/09 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis