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中的ceil()方法使用教程
May 14 Python
Python编程实现二叉树及七种遍历方法详解
Jun 02 Python
Python实现pdf文档转txt的方法示例
Jan 19 Python
Python深度优先算法生成迷宫
Jan 22 Python
Python读写及备份oracle数据库操作示例
May 17 Python
NumPy 数学函数及代数运算的实现代码
Jul 18 Python
Python中修改字符串的四种方法
Nov 02 Python
python3中property使用方法详解
Apr 23 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
Django 后台带有字典的列表数据与页面js交互实例
Apr 03 Python
Python 忽略文件名编码的方法
Aug 01 Python
5款实用的python 工具推荐
Oct 13 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二维数组的去重问题解析
2011/07/17 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
PHP7新特性
2021/03/09 PHP
js文字滚动停顿效果代码
2008/06/28 Javascript
JavaScript 三种创建对象的方法
2009/10/16 Javascript
用Javascript获取页面元素的具体位置
2013/12/09 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
2014/04/25 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
Vue项目组件化工程开发实践方案
2018/01/09 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
Python PIL图片添加字体的例子
2019/08/22 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
《最大的“书”》教学反思
2014/02/14 职场文书
电厂职工自我鉴定
2014/02/20 职场文书
个人承诺书格式范文
2015/04/29 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
销售人员管理制度
2015/08/06 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python