Peter Otten: > >>> class mutable_str(object):... def __init__(self, value): > ... self._value = value > ... def __setitem__(self, index, value): > ... self._value = self._value[:index] + value + > self._value[index+1:] > ... def __str__(self): > ... return self._value > ...>>> a = mutable_str("123") > >>> a[1] = "x" > >>> print a
For this purpose an array may be better, if you have to change it often and print is only once in a while: from array import array a = array("c", "123") a[1] = "x" print a The OP can also use a class, if some other methods are needed: from array import array class mutable_str(object): def __init__(self, value): self._value = array("c", value) def __setitem__(self, index, value): self._value[index] = value def __str__(self): return self._value.tostring() # this requires time a = mutable_str("123") a[1] = "x" print a Probably array.array can be subclassed too... bye, bearophile -- http://mail.python.org/mailman/listinfo/python-list