[Tutor] creating the equivalent of string.strip()

Ricardo Aráoz ricaraoz at gmail.com
Wed Oct 3 02:29:19 CEST 2007


Alan Gauld wrote:
> "Ricardo Aráoz" <ricaraoz at gmail.com> wrote
> 
>> So as not to copy strings many times :
>>
>> while s[0].isspace() :
>>    while s[-1].isspace() :
>>        del s[-1]
>>    del s[0]
> 
> Sorry, it won;t work. Strings are immutable.
> However you can keep a track of the indexes of the
> first and last non space characers and use slicing
> if the copying seems to be a problem...
> 
> first,last = 0,-1
> 
> while s[first].isspace():
>     first += 1
> while s[last].isspace()
>     last -= 1
> return s[first:last]
> 
> There might be an off-by-one error in the slice, its untested...
> 
> Alan g.
> 

sorry, forgot a piece of the code :

s = list(s)
while s[0].isspace() :
    while s[-1].isspace() :
        del s[-1]
    del s[0]
s = ''.join(s)

You only copy the string twice.






More information about the Tutor mailing list