python獲取指定字符串中重復(fù)模式最高的字符串方法
給定一個(gè)字符串,如何得到其中重復(fù)模式最高的子字符串,我采用的方法是使用滑窗機(jī)制,對(duì)給定的字符串切分,窗口的大小從1增加到字符串長(zhǎng)度減1,將所有的得到的切片統(tǒng)計(jì)結(jié)果,在這里不考慮單個(gè)字符的重復(fù)模式,好了,很簡(jiǎn)單看具體實(shí)現(xiàn):
#!usr/binenv python
#encoding:utf-8
'''
__Author__:沂水寒城
統(tǒng)計(jì)一個(gè)給定字符串中重復(fù)模式數(shù)量得到最高重復(fù)模式串
'''
def slice(num_str,w):
'''
對(duì)輸入的字符串滑窗切片返回結(jié)果列表
'''
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):
'''
統(tǒng)計(jì)重復(fù)模式串?dāng)?shù)量
'''
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
結(jié)果如下:
[('45', 8), ('4545', 5), ('454', 5), ('545', 5), ('54', 5), ('5454', 4), ('454545', 4), ('45454', 4), ('54545', 4), ('545454', 3)]
[Finished in 0.5s]
結(jié)果列表中第一個(gè)即為所求,當(dāng)然,基于此還可以繼續(xù)改進(jìn)有很多別的需求。
以上這篇python獲取指定字符串中重復(fù)模式最高的字符串方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
全面解讀Python Web開(kāi)發(fā)框架Django
Django是一個(gè)開(kāi)源的Web應(yīng)用框架,由Python寫(xiě)成。采用MVC的軟件設(shè)計(jì)模式,主要目標(biāo)是使得開(kāi)發(fā)復(fù)雜的、數(shù)據(jù)庫(kù)驅(qū)動(dòng)的網(wǎng)站變得簡(jiǎn)單。Django注重組件的重用性和“可插拔性”,敏捷開(kāi)發(fā)和DRY法則(Don’t Repeat Yoursef)。2014-06-06
Python 帶星號(hào)(* 或 **)的函數(shù)參數(shù)詳解
這篇文章主要介紹了Python 帶星號(hào)(* 或 **)的函數(shù)參數(shù)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Python 獲取numpy.array索引值的實(shí)例
今天小編就為大家分享一篇Python 獲取numpy.array索引值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
Python Numpy數(shù)組擴(kuò)展repeat和tile使用實(shí)例解析
這篇文章主要介紹了Python Numpy數(shù)組擴(kuò)展repeat和tile使用實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
python的簡(jiǎn)單web框架flask快速實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了python的簡(jiǎn)單web框架flask快速實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
pyqt5 使用setStyleSheet設(shè)置單元格的邊框樣式操作
這篇文章主要介紹了pyqt5 使用setStyleSheet設(shè)置單元格的邊框樣式操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
python實(shí)現(xiàn)百度語(yǔ)音識(shí)別api
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)百度語(yǔ)音識(shí)別api,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
Pycharm 解決自動(dòng)格式化沖突的設(shè)置操作
這篇文章主要介紹了Pycharm 解決自動(dòng)格式化沖突的設(shè)置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
Python Selenium 之?dāng)?shù)據(jù)驅(qū)動(dòng)測(cè)試的實(shí)現(xiàn)
這篇文章主要介紹了Python Selenium 之?dāng)?shù)據(jù)驅(qū)動(dòng)測(cè)試的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
python捕獲異常后繼續(xù)執(zhí)行問(wèn)題
這篇文章主要介紹了python捕獲異常后繼續(xù)執(zhí)行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09

