a simple question about string object

Frank Zheng hust_zxq524 at 263.net
Mon Mar 17 01:26:38 EST 2003


"use a list, convert to a string only for output." --- a very good lesson

thanks

Frank

"Peter Hansen" <peter at engcorp.com> ??????:3E7546C5.438BBF83 at engcorp.com...
> Frank Zheng wrote:
> >
> > Hi, all:
> >
> > >>> s = '12345'
> > >>> s[2] = 'x'
> > Traceback (most recent call last):
> >   File "<interactive input>", line 1, in ?
> > TypeError: object doesn't support item assignment
> >
> > i know the string object is immutable, so if i want to do 'item
assignment',
> > i should do:
> > >>> new_s = s[0:1] + 'x' + s[2:]
> > ( i think it's ugly)
> >
> > Is there other ways to do this?
> > should i define a function to do this? Is there any modules existing can
do
> > this?
>
> If this is all you're doing with the string, and you use the string
> as an immutable string for the usual string purposes most of the time,
> then this isn't ugly, it's just what you need to do to work with
> immutable data types.  You'd do exactly the same thing if you
> had a tuple and you thought you needed to modify it.
>
> More likely, you are thinking of your data as a string only because
> at some point you want to output it that way, but most of the time
> you are manipulating it as a list of characters, in which case you
> should focus on the mutability part and do what Greg suggested:
> use a list, convert to a string only for output.
>
> -Peter






More information about the Python-list mailing list