最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python查找相似單詞的方法

 更新時(shí)間:2015年03月05日 12:10:03   作者:Sephiroth  
這篇文章主要介紹了Python查找相似單詞的方法,涉及Python針對(duì)字符串的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

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

問題:

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

Python代碼如下:

from itertools import tee,izip
from collections import defaultdict
def pairwise(iterable):
  a, b = tee(iterable)
  for elem in b:
    break
  return izip(a, b)
buf_array=[]
buf_no={}
key_from_id=0
def 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 result
add_to_buf("1234")
add_to_buf("ABCD")
add_to_buf("CABD")
print find_in_buf("ACBD")

希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

循化| 盘锦市| 如皋市| 额尔古纳市| 商城县| 民勤县| 来凤县| 台山市| 吴川市| 九龙县| 丽江市| 正安县| 神农架林区| 合阳县| 磐石市| 青龙| 昆山市| 建宁县| 大安市| 景德镇市| 绥宁县| 义乌市| 黑河市| 青铜峡市| 德江县| 金寨县| 绥滨县| 巍山| 什邡市| 广德县| 开平市| 崇义县| 东乡族自治县| 阜宁县| 安泽县| 元谋县| 建始县| 麟游县| 东平县| 阜康市| 阿尔山市|