2016-04-28 8 views
0

Dies ist ein Hausaufgabenprojekt von letzter Woche. Ich hatte Probleme, also habe ich es nicht gedreht. Aber ich gehe gerne zurück und schaue, ob ich sie arbeiten lassen kann. Jetzt drucke ich die richtigen Wörter in alphabetischer Reihenfolge. Ich habe das Problem, dass es 3 separate Listen von eindeutigen Wörtern alle mit unterschiedlicher Anzahl von Wörtern in den Listen druckt. Wie kann ich das beheben?Zu vielen Listen von Unique Words

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) 

Unten ist der Ausgang, den ich bekomme, ich will nur, dass er mir den letzten mit den 138 Wörtern gibt. Schätze jede Hilfe.

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 

Antwort

1

Nehmen letzten 3 Zeilen aus für:

.... 
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

Danke, es ist immer die einfachsten Dinge. Ich hätte schwören können, dass ich es versucht habe, aber nachdem ich so lange daran gearbeitet habe, dachte ich wahrscheinlich, dass ich es getan habe. – Randy

+0

passiert manchmal :) – alpert

Verwandte Themen