Python實現(xiàn)統(tǒng)計給定字符串中重復(fù)模式最高子串功能示例
本文實例講述了Python實現(xiàn)統(tǒng)計給定字符串中重復(fù)模式最高子串功能。分享給大家供大家參考,具體如下:
給定一個字符串,如何得到其中重復(fù)模式最高的子字符串,我采用的方法是使用滑窗機制,對給定的字符串切分,窗口的大小從1增加到字符串長度減1,將所有的得到的切片統(tǒng)計結(jié)果,在這里不考慮單個字符的重復(fù)模式,好了,很簡單看具體實現(xiàn):
#!usr/binenv python #encoding:utf-8 ''''' __Author__:沂水寒城 統(tǒng)計一個給定字符串中重復(fù)模式數(shù)量得到最高重復(fù)模式串 ''' def slice(num_str,w): ''''' 對輸入的字符串滑窗切片返回結(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)計重復(fù)模式串數(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é)果列表中第一個即為所求,當然,基于此還可以繼續(xù)改進有很多別的需求。
PS:這里再為大家推薦2款非常方便的統(tǒng)計工具供大家參考使用:
在線字數(shù)統(tǒng)計工具:
http://tools.jb51.net/code/zishutongji
在線字符統(tǒng)計與編輯工具:
http://tools.jb51.net/code/char_tongji
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python字符串操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
Python二進制文件轉(zhuǎn)換為文本文件的代碼實現(xiàn)
在日常編程中,我們經(jīng)常會遇到需要將二進制文件轉(zhuǎn)換為文本文件的情況,在Python中,我們可以利用各種庫和技術(shù)來完成這項任務(wù),本文將介紹如何使用Python將二進制文件轉(zhuǎn)換為文本文件,并提供實用的代碼示例,需要的朋友可以參考下2024-04-04詳談Python2.6和Python3.0中對除法操作的異同
下面小編就為大家?guī)硪黄斦凱ython2.6和Python3.0中對除法操作的異同。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04解決tensorflow/keras時出現(xiàn)數(shù)組維度不匹配問題
這篇文章主要介紹了解決tensorflow/keras時出現(xiàn)數(shù)組維度不匹配問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python中collections.Counter()的具體使用
本文主要介紹了Python中collections.Counter()的具體使用,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧2021-07-07Pygame實戰(zhàn)之實現(xiàn)經(jīng)典外星人游戲
這篇文章主要介紹了通過Pygame實現(xiàn)經(jīng)典的外星人游戲的示例代碼,文中的代碼講解詳細,對我們了解Pygame有一定的幫助,感興趣的同學可以試一試2022-01-01