How do I modify a string in place?

You can’t, because strings are immutable. Most string manipulation code in Python simply creates new strings instead of modifying the existing ones.

If you need a string-like object that can be modified in place, try converting the string to a list or use the array module:

>>> s = "Hello, world"
>>> a = list(s)
>>> print a
['H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd']
>>> a[7:] = list("there!")
>>> ''.join(a)
'Hello, there!'

>>> import array
>>> a = array.array('c', s)
>>> print a
array('c', 'Hello, world')
>>> a[0] = 'y' ; print a
array('c', 'yello world')
>>> a.tostring()
'yello, world'

CATEGORY: programming

 

Comment:

There is also a MutableString class in the UserString module.

Posted by Roberto Bonvallet (2006-11-30)

A Django site. this page was rendered by a django application in 0.04s 2008-08-28 02:32:38.758390. hosted by webfaction.