python字符串重复_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]

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

以上这篇python获取指定字符串中重复模式最高的字符串方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值