Alan Gauld wrote: > Hi Ben, > > >> I want to enter the words and definitions from the text file into the >> dict. >> The way the text file is set up is that one line is the word and the >> next line is the definition. >> > > >> I tried using a for loop like this >> >> f = open('glossary.txt','r') >> gloss = {} >> >> for line in f: >> gloss[line] = line >> > > The problem that you have is that you really need to read two lines at a > time. > (Assuming that the definitions are all on one line which may not be true!) > A while loop may be easier in this case. > > A for loop will read each line individually. You then need to set a > definition > flag to tell the loop body whether you are reading a definition or a key. > > Either type of loop is possible. Since you started with a for loop lets > stick with it... > > definition = False > currentKey = None > > for line in f: > if isDefinition: > gloss[currentKey] = line > currentKey = None > isDefinition = False > else: > currentKey = line > isDefinition = True > Or you can use next():
for line in f: gloss[line] = f.next() > If the definitions take up more than one line each then you will need to > think > about how to identify the end of a definition - a blank line maybe? You will > need to append the lines to the glossary entry (rather than just assign > them) > until the end of the definition. And you will need to update the > isDefinition > flag at the appropriate times. > > HTH, > > Alan G > Author of the learn to program web tutor > http://www.freenetpages.co.uk/hp/alan.gauld > > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > > > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor