2016-06-14 80 views
0

我正在学习使用Program Arcade Games学习Python,并且我已经陷入其中一个实验室。线性搜索在Python中查找拼写错误

我应该比较文本文件(http://programarcadegames.com/python_examples/en/AliceInWonderLand200.txt)的每个单词,以查找它是否不在字典文件(http://programarcadegames.com/python_examples/en/dictionary.txt)中,如果不是,则将其打印出来。我应该使用线性搜索。

问题是即使我知道字典文件中没有的字词也没有被打印出来。任何帮助,将不胜感激。

我的代码如下:

# Imports regular expressions 
import re 

# This function takes a line of text and returns 
# a list of words in the line 


def split_line(line): 
    split = re.findall('[A-Za-z]+(?:\'\"[A-Za-z]+)?', line) 
    return split 


# Opens the dictionary text file and adds each line to an array, then closes the file 
dictionary = open("dictionary.txt") 
dict_array = [] 
for item in dictionary: 
    dict_array.append(split_line(item)) 
print(dict_array) 
dictionary.close() 

print("---Linear Search---") 

# Opens the text for the first chapter of Alice in Wonderland 
chapter_1 = open("AliceInWonderland200.txt") 

# Breaks down the text by line 
for each_line in chapter_1: 
    # Breaks down each line to a single word 
    words = split_line(each_line) 
    # Checks each word against the dictionary array 
    for each_word in words: 
     i = 0 
     # Continues as long as there are more words in the dictionary and no match 
     while i < len(dict_array) and each_word.upper() != dict_array[i]: 
      i += 1 
     # if no match was found print the word being checked 
     if not i <= len(dict_array): 
      print(each_word) 

# Closes the first chapter file 
chapter_1.close() 

回答

0

线性搜索找到拼写错误在Python

像这样的东西应该做的(伪代码)

sampleDict = {} 
For each word in AliceInWonderLand200.txt: 
    sampleDict[word] = True 

actualWords = {} 
For each word in dictionary.txt: 
    actualWords[word] = True 

For each word in sampleDict: 
    if not (word in actualDict): 
     # Oh no! word isn't in the dictionary 

set可能比字典更合适,因为字典的值在t他抽样并不重要。这应该让你去,虽然

+0

尽管这基本上是我的代码上面做的,我的代码并没有将AliceInWonderLand200文本添加到列表。 使它能够正常工作。谢谢。 – Skrizzy