Ben Cartwright wrote:
> orangeDinosaur wrote:
> > I am encountering a behavior I can think of reason for. Sometimes,
> > when I use the .strip module for strings, it takes away more than what
> > I've specified. For example:
> >
> > >>> a = ' <TD WIDTH=175><FONT SIZE=2>Hughes. John</FONT></TD>\r\n'
> >
> > >>> a.strip(' <TD WIDTH=175><FONT SIZE=2>')
> >
> > returns:
> >
> > 'ughes. John</FONT></TD>\r\n'
> >
> > However, if I take another string, for example:
> >
> > >>> b = ' <TD WIDTH=175><FONT SIZE=2>Kim, Dong-Hyun</FONT></TD>\r\n'
> >
> > >>> b.strip(' <TD WIDTH=175><FONT SIZE=2>')
> >
> > returns:
> >
> > 'Kim, Dong-Hyun</FONT></TD>\r\n'
> >
> > I don't understand why in one case it eats up the 'H' but in the next
> > case it leaves the 'K' alone.
>
>
> That method... I do not think it means what you think it means. The
> argument to str.strip is a *set* of characters, e.g.:
>
> >>> foo = 'abababaXabbaXabababbbb'
> >>> foo.strip('ab')
> 'XabbaX'
> >>> foo.strip('aabababaab') # no difference!
> 'XabbaX'
>
> For more info, see the string method docs:
> http://docs.python.org/lib/string-methods.html
> To do what you're trying to do, try this:
>
> >>> prefix = 'hello '
> >>> bar = 'hello world!'
> >>> if bar.startswith(prefix): bar = bar[:len(prefix)]
> ...
> >>> bar
> 'world!'
Apologies, that should be:
>>> prefix = 'hello '
>>> bar = 'hello world!'
>>> if bar.startswith(prefix): bar = bar[len(prefix):]
...
>>> bar
'world!'
--Ben
--
http://mail.python.org/mailman/listinfo/python-list