2016-04-28 33 views
0

这是上周的一个家庭作业项目。我有问题,所以没有把它变成现实。但我喜欢回去看看我能否让他们工作。现在我已经按字母顺序打印了正确的单词。我遇到了这样的问题,即打印3个单独的单词列表,所有单词列表中的单词数量都不相同。我怎样才能解决这个问题?许多独特词汇列表

import string 
def process_line(line_str,word_set): 
    line_str=line_str.strip() 
    list_of_words=line_str.split() 
for word in list_of_words: 
    if word!="--": 
     word=word.strip() 
     word=word.strip(string.punctuation) 
     word=word.lower() 
     word_set.add(word) 
def pretty_print(word_set): 
    list_of_words=[] 
    for w in word_set: 
     list_of_words.append(w) 
     list_of_words.sort() 
    for w in list_of_words: 
     print(w,end=" ") 
word_set=set([]) 
fObject=open("gettysburg.txt") 
for line_str in fObject: 
    process_line(line_str,word_set) 
    print("\nlength of the word set: ",len(word_set)) 
    print("\nUnique words in set: ") 
    pretty_print(word_set) 

下面是我得到的输出,我只希望它给我最后一个138字。感谢任何帮助。

length of the word set: 29 

Unique words in set: 

a ago all and are brought conceived continent created dedicated equal fathers forth four in liberty men nation new on our proposition score seven that the this to years 

length of the word set: 71 

Unique words in set: 

a ago all altogether and any are as battlefield brought can civil come conceived continent created dedicate dedicated do endure engaged equal fathers field final fitting for forth four gave great have here in is it liberty live lives long men met might nation new now of on or our place portion proper proposition resting score seven should so testing that the their this those to war we whether who years 

length of the word set: 138 

Unique words in set: 

a above add advanced ago all altogether and any are as battlefield be before birth brave brought but by can cause civil come conceived consecrate consecrated continent created dead dedicate dedicated detract devotion did died do earth endure engaged equal far fathers field final fitting for forget forth fought four freedom from full gave god government great ground hallow have here highly honored in increased is it larger last liberty little live lives living long measure men met might nation never new nobly nor not note now of on or our people perish place poor portion power proper proposition rather remaining remember resolve resting say score sense seven shall should so struggled take task testing that the their these they this those thus to under unfinished us vain war we what whether which who will work world years 

回答

1

取最后3行出为:

.... 
for line_str in fObject: 
    process_line(line_str,word_set) 

print("\nlength of the word set: ",len(word_set)) 
print("\nUnique words in set: ") 
pretty_print(word_set) 
+0

谢谢你,它始终是最容易的事情。我可以发誓我尝试过,但经过这么长时间的工作,我可能只是认为我做了。 – Randy

+0

有时会发生:) – alpert