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中使用装饰器和元编程实现结构体类实例
Jan 28 Python
Python中暂存上传图片的方法
Feb 18 Python
python概率计算器实例分析
Mar 25 Python
详解python使用Nginx和uWSGI来运行Python应用
Jan 09 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
Mar 19 Python
python中join()方法介绍
Oct 11 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
Jan 02 Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 Python
python实现简单的五子棋游戏
Sep 01 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
Feb 22 Python
Python手拉手教你爬取贝壳房源数据的实战教程
May 21 Python
pytorch中Schedule与warmup_steps的用法说明
May 24 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数组及条件,循环语句学习
2012/11/11 PHP
php selectradio和checkbox默认选择的实现方法详解
2013/06/29 PHP
PHP如何将XML转成数组
2016/04/04 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
举例讲解JavaScript substring()的使用方法
2015/11/09 Javascript
js移动焦点到最后位置的简单方法
2016/11/25 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
2018/08/14 jQuery
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
Python使用修饰器进行异常日志记录操作示例
2019/03/19 Python
python爬虫今日热榜数据到txt文件的源码
2021/02/23 Python
英国和爱尔兰的自炊式豪华度假小屋:Rural Retreats
2018/06/08 全球购物
巴基斯坦购物网站:Goto
2019/03/11 全球购物
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
幼儿园义卖活动方案
2014/01/17 职场文书
教师评语大全
2014/04/28 职场文书
节约能源标语
2014/06/17 职场文书
预备党员转正材料
2014/12/19 职场文书
推荐信范文大全
2015/03/27 职场文书
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
2021/05/26 Servers
如何解决php-fpm启动不了问题
2021/11/17 PHP
nginx搭建NFS网络文件系统
2022/04/14 Servers