国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現統計給定字符串中重復模式最高子串功能示例

2020-02-23 00:08:51
字體:
來源:轉載
供稿:網友

本文實例講述了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_listdef 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相關內容感興趣的讀者可查看本站專題:《Python字符串操作技巧匯總》、《Python數據結構與算法教程》、《Python函數使用技巧總結》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东乌珠穆沁旗| 武乡县| 简阳市| 监利县| 南开区| 千阳县| 韶关市| 方山县| 福安市| 淮北市| 南宫市| 泉州市| 萝北县| 本溪市| 吉林市| 洛川县| 澄江县| 秀山| 大英县| 若尔盖县| 观塘区| 垣曲县| 中阳县| 建德市| 大冶市| 东莞市| 海门市| 靖州| 远安县| 呼玛县| 靖边县| 大同市| 株洲市| 辽中县| 浪卡子县| 义乌市| 安乡县| 银川市| 桐梓县| 龙岩市| 兴业县|