[Tutor] Searching a text file's contents and comparing them toalist
Alan Gauld
alan.gauld at btinternet.com
Wed Jul 14 21:32:10 CEST 2010
"Eric Hamiter" <ehamiter at gmail.com> wrote
> aisle_one = ["chips", "bread", "pretzels", "magazines"]
> aisle_two = ["juice", "ice cream"]
> aisle_three = ["asparagus"]
>
> def find_groceries():
> grocery_list = open("grocery_list.txt", "r")
> for line in grocery_list.readlines():
See previous about removing the redundant readlines()
> line = line.strip()
> if line in aisle_one:
> first_run = "%s" % line + " - aisle one.\n"
The string formatting is redundant here since you assign a string to a
string
You could just dio:
first_run = line + " - aisle one.\n"
> I can see that the variables first_run, second_run and third_run are
> writing over themselves while looping, which is logical, but this is
> not what I want. If I simply print them immediately instead of
> storing
> them as variables, all items will print, but not in the order I
> wish.
So store the strings in a list then at the end print each list of
strings.
> The ultimate goal of the program will be to sort the items based on
> aisle locations. Is there an efficient way to do this?
You can sort the lists before printing...
> I think I want some kind of incremental counter going on in the loop
> to prevent them from overwriting themselves, or a way to store
> multiple variables, but I'm not sure how to do that.
No need for counters, just append() to a list.
--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/
More information about the Tutor
mailing list