[Tutor] Testing a string to see if it contains a substring (dw)

Mark Lawrence breamoreboy at yahoo.co.uk
Fri Jan 23 11:37:56 CET 2015


On 22/01/2015 15:40, dw wrote:
> Thanks for your good comments.
> I do think I found a work around
>
> body = ""
> for x in range(0,len(line_array)):
>      test_line = len(re.findall(r'[0-9]{2}/[0-9]{2}/[0-9]{4}',
>      line_array[x]))
>      if test_line > 0:
>          body = body + line_array[x]+"\n"

Using range in a Python for loop is often a code smell.  Your names are 
poor as well.  The Pythonic way is:-

body = ""
for line in line_array:
     linelen = len(re.findall(r'[0-9]{2}/[0-9]{2}/[0-9]{4}', line))
     if linelen > 0:
         body += line + "\n"

Also note that although the above is adequate for small data sets, the 
performance dives terribly as the size of the data set goes up.  Your 
homework for this weekend is to research how one normally joins strings 
in Python and report back.  Have a good one :)

-- 
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence



More information about the Tutor mailing list