Python实现统计给定字符串中重复模式最高子串功能示例

作者:Together_CZ 时间:2023-07-22 23:42:44 

本文实例讲述了Python实现统计给定字符串中重复模式最高子串功能。分享给大家供大家参考,具体如下:

给定一个字符串,如何得到其中重复模式最高的子字符串,我采用的方法是使用滑窗机制,对给定的字符串切分,窗口的大小从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]

结果列表中第一个即为所求,当然,基于此还可以继续改进有很多别的需求。

PS:这里再为大家推荐2款非常方便的统计工具供大家参考使用:

在线字数统计工具:
http://tools.jb51.net/code/zishutongji

在线字符统计与编辑工具:
http://tools.jb51.net/code/char_tongji

希望本文所述对大家Python程序设计有所帮助。

来源:https://blog.csdn.net/together_cz/article/details/74761447

标签:Python,统计,字符串
0
投稿

猜你喜欢

  • Python制作一个随机抽奖小工具的实现

    2022-10-22 03:53:29
  • linux实现定时备份mysql数据库的简单方法

    2024-01-16 07:21:57
  • Python中可变和不可变对象的深入讲解

    2022-12-29 21:31:21
  • Python之字典添加元素的几种方法

    2022-11-13 13:37:23
  • python中内置库os与sys模块的详细介绍

    2021-12-05 21:30:33
  • JS二维数组的定义说明

    2023-08-23 15:09:45
  • 基于Python实现烟花效果的示例代码

    2021-02-08 13:25:09
  • 分享个asp文件缓存代码,使程序从缓存读数据

    2011-03-09 19:47:00
  • Python+matplotlib实现绘制等高线图示例详解

    2022-09-18 05:44:11
  • Python tkinter进度条控件(Progressbar)的使用

    2023-08-01 20:24:21
  • 将后台数据从Berkeley的文件DB转到MySQL

    2009-01-04 13:31:00
  • pytest中的fixture基本用法

    2023-07-14 12:26:45
  • 让python 3支持mysqldb的解决方法

    2024-01-15 22:50:08
  • MySql 8.0.16版本安装提示已经不使用“UTF8B3”而是使用“UTF8B4”问题

    2024-01-23 12:43:57
  • python中遍历文件的3个方法

    2022-10-21 08:41:07
  • 轻量级的原生js日历插件calendar.js使用指南

    2024-04-17 09:44:39
  • vue-cli-service build 环境设置方式

    2024-05-25 15:17:08
  • Python Web框架Flask信号机制(signals)介绍

    2022-12-01 13:52:23
  • sql server中Select count(*)和Count(1)的区别和执行方式

    2024-01-23 11:47:39
  • Python深度学习pytorch神经网络多层感知机简洁实现

    2021-08-20 17:37:43
  • asp之家 网络编程 m.aspxhome.com