On 12 Mar, 18:55, [EMAIL PROTECTED] wrote: > On Mar 12, 10:01 am, "Erik Johnson" <[EMAIL PROTECTED]> wrote: > > > > > Sorry, I forgot to paste the modified version of my code in the post:. I > > think this is the same behaviour: > > > for line in lines: > > if "placed" in line: > > if "i_a/i_b/ROM/" in line: > > pos = (line.split()[4]).split("_")[1] > > found = False > > > for (tag, (start, end)) in tags: > > if tag in line: > > found = True > > print " i_a/i_b/ROM/%s [%i:%i] LOC =" %\ > > (pos, tag, start, end) > > break > > > if not found: > > print "Error" > > Instead of using a sentinal value (i.e., found), > one can use the 'else' clause of a 'for' loop... > > pos = (line.split()[4]).split("_")[1] > for (tag, (start,end)) in tags: > if tag in line: > print " i_a/i_b/ROM/%s [%i:%i] LOC=%s" %\ > (pos,tag,start,end) > break > else > print "Error" > > -- > Hope this helps, > Steven
Thanks for the responses. I had an inkling what the solution may be, but I wondering whether I could avoid the nested loops (i.e. loop every line and then loop every pattern), maybe using maps or list comprehensions (this is just intellectual curiosity as the current solution obviously does the job. Steven -- http://mail.python.org/mailman/listinfo/python-list