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

首頁 > 編程 > Python > 正文

Python查找相似單詞的方法

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

本文實例講述了Python查找相似單詞的方法。分享給大家供大家參考。具體分析如下:

問題:

給你一個單詞a,如果通過交換單詞中字母的順序可以得到另外的單詞b,那么定義b是a的兄弟單詞。現在給你一個字典,用戶輸入一個單詞,讓你根據字典找出這個單詞有多少個兄弟單詞。

Python代碼如下:

from itertools import tee,izipfrom collections import defaultdictdef pairwise(iterable):  a, b = tee(iterable)  for elem in b:    break  return izip(a, b)buf_array=[]buf_no={}key_from_id=0def add_to_buf(word):  global key_from_id,buf_array  if len(word)==1:    pass    #TODO  for pos,pair in enumerate(pairwise(word)):    if len(buf_array)<pos+1:      buf_array.append(defaultdict(set))    pos_dict=buf_array[pos]    key=list(pair)    key.sort()    key="".join(key)    if key not in buf_no:      buf_no[key]=key_from_id      key_from_id+=1    key=buf_no[key]    pos_dict[key].add(word)def find_in_buf(word):  global key_from_id,buf_array  if len(word)==1:    pass    #TODO  exist = []  for pos,pair in enumerate(pairwise(word)):    if len(buf_array)<pos+1:      return      pos_dict=buf_array[pos]    key=list(pair)    key.sort()    key="".join(key)    if key not in buf_no:      continue    key=buf_no[key]    if key not in pos_dict:      continue    exist.append(pos_dict[key])  count_dict=defaultdict(int)  for i_set in exist:    for i in i_set:      count_dict[i]+=1  result=[]  min_match = len(word)-3  for k,v in count_dict.iteritems():    if v>=min_match:      result.append(k)  return resultadd_to_buf("1234")add_to_buf("ABCD")add_to_buf("CABD")print find_in_buf("ACBD")

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海城市| 渭源县| 永州市| 漳平市| 攀枝花市| 盱眙县| 岱山县| 石阡县| 梅州市| 顺平县| 图木舒克市| 长宁县| 隆子县| 胶州市| 茂名市| 大悟县| 汾阳市| 界首市| 元氏县| 邢台县| 政和县| 土默特左旗| 黄浦区| 宁乡县| 德昌县| 黔东| 蓬溪县| 桃源县| 镇赉县| 齐齐哈尔市| 霞浦县| 桃江县| 麻江县| 苍溪县| 峨眉山市| 平阳县| 平江县| 同心县| 逊克县| 长沙市| 屏南县|