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 相关文章推荐
python3之微信文章爬虫实例讲解
Jul 12 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
Python控制键盘鼠标pynput的详细用法
Jan 28 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
Python3+Appium安装使用教程
Jul 05 Python
使用pip安装python库的多种方式
Jul 31 Python
使用Python自动生成HTML的方法示例
Aug 06 Python
PyQt5多线程防卡死和多窗口用法的实现
Sep 15 Python
Python实现文本文件拆分写入到多个文本文件的方法
Apr 18 Python
python爬取豆瓣电影TOP250数据
May 23 Python
Python使用DFA算法过滤内容敏感词
Apr 22 Python
Python pyecharts案例超市4年数据可视化分析
Aug 14 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目录导航文件代码
2006/10/09 PHP
用PHP的ob_start();控制您的浏览器cache!
2007/02/14 PHP
PHP Smarty生成EXCEL文档的代码
2008/08/23 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
驱动事件的addEvent.js代码
2007/03/27 Javascript
用JavaScript显示随机图像或引用
2009/04/21 Javascript
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
2011/11/15 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
jQuery返回定位插件详解
2017/05/15 jQuery
使用JavaScript进行表单校验功能
2017/08/01 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
vue中添加mp3音频文件的方法
2018/03/02 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
Python中的闭包实例详解
2014/08/29 Python
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
python中使用while循环的实例
2019/08/05 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
大专生自我评价
2014/01/28 职场文书
开业主持词
2014/03/21 职场文书
医德考评自我评价
2014/09/14 职场文书
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript