On 12/10/13 06:18, Jackie Canales wrote:

     for line in lst.splitlines():
         if word in line:
            words = line

Notice that you are overwriting words each time you get a match.
So the final value of words at the end of the for loop will just be the last line found. All earlier lines will have been lost.

However, as Dave points out, this is the wrong approach to the assignment. You should be getting all the words not just lines that contain the word because the context(=/- 5 words) might span lines into lines that do not of themselves contain your word. So this approach throws away words which you may need.

     for index, word in enumerate(words):
         print(words)

The obvious error of using words instead of word has already been pointed out. But since we've seen a few errors in your use of for loops can I just check you are clear on how Python for loops work?
If you have used other languages they are like a foreach loop.
They do not use indexing they return each item in a sequence
until the sequence ends. This is much easier than the for loops in languages like C, Pascal, Java, Basic etc. enumerate() gives you access to indexes on the relatively few occasions you need that extra information.

HTH
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to