2011-03-15 61 views
0

我試圖搜索一個文件來查找所有使用任何或所有人名的字母並且長度與他們的名字相同的單詞。我已經導入了文件,它可以打開並閱讀等,但現在我希望能夠搜索任何包含指定字母的單詞的文件,單詞必須與人的名字長度相同。在python中搜索

+0

如果所有的字母出現頻率相同的人的名字? – 2011-03-15 13:04:44

回答

0

我想這種方式解決這個問題:

  • 濾除長度從第一長度不同的話名稱,
  • 遍歷剩餘的單詞,檢查名字的字母和單詞的字母的交集是否非空(set可能在此處有用)。

P.S.這是你的功課嗎?

+0

PS-RE:聽起來很喜歡,不是。 ;) – 2011-03-16 13:02:55

1
def find_anagrams_in_file(filename, searchword): 
    import re 
    searchword = searchword.lower() 
    found_words = [] 
    for line in open(filename, 'rt'): 
     words = re.split(r'\W', line) 
     for word in words: 
      if len(word) == len(searchword): 
       tmp = word.lower() 
       try: 
        for letter in searchword: 
         idx = tmp.index(letter) 
         tmp = tmp[:idx] + tmp[idx+1:] 
        found_words += [word] 
       except ValueError: 
        pass 
    return found_words 

運行爲使(Python 3中):

>>> print(find_anagrams_in_file('apa.txt', 'Urne')) 
['Rune', 'NurE', 'ERUN']