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 相关文章推荐
Pyramid Mako模板引入helper对象的步骤方法
Nov 27 Python
Python实现截屏的函数
Jul 25 Python
简单谈谈python中的Queue与多进程
Aug 25 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
Django REST framework 视图和路由详解
Jul 19 Python
python多线程同步之文件读写控制
Feb 25 Python
Python爬虫 urllib2的使用方法详解
Sep 23 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
Python判断远程服务器上Excel文件是否被人打开的方法
Jul 13 Python
python模拟点击在ios中实现的实例讲解
Nov 26 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
Python之matplotlib绘制折线图
Apr 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中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
深入php list()函数的详解
2013/06/05 PHP
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
php递归实现无限分类的方法
2015/07/28 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
PHP连接MYSQL数据库的3种常用方法
2017/02/27 PHP
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
brook javascript框架介绍
2011/10/10 Javascript
JavaScript中valueOf函数与toString方法深入理解
2012/12/02 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
python友情链接检查方法
2015/07/08 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
2016/07/02 Python
python多进程读图提取特征存npy
2019/05/21 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
收银出纳员岗位职责
2014/02/23 职场文书
垃圾桶标语
2014/06/24 职场文书
健康状况证明模板
2014/10/23 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
python 判断字符串当中是否包含字符(str.contain)
2022/06/01 Python