[Tutor] iterating in the same line

Bob Gailer bgailer at alum.rpi.edu
Sun Aug 14 00:49:26 CEST 2005


At 12:20 PM 8/13/2005, Jonas Melian wrote:
>I would check 3 words at the starting of a line
>
>s=['foo','bar','qwe']
>
>if ln.startswith(s):   (this is bad)
>
>what is the best way for making it?

Iterations over a list of this nature are most succinctly done using list 
comprehensions.

if [l for l in s if ln.startswith(l)]:

Caveat: This will test every word in s. If s is a large list it would be 
more efficient to break as soon as a match is found:

match = False
for l in s:
     if ln.startswith(l):
         match = True
         break

The 3rd alternative is to use regular expression matching. That is beyond 
the scope of this thread.
[snip]

Bob Gailer
mailto:bgailer at alum.rpi.edu
303 442 2625 home
720 938 2625 cell 



More information about the Tutor mailing list