Mutable Strings - Any libraries that offer this?
Steven D'Aprano
steve at REMOVE-THIS-cybersource.com.au
Mon Jul 20 10:21:15 EDT 2009
On Mon, 20 Jul 2009 21:08:22 +1000, Ben Finney wrote:
> casebash <walkraft at gmail.com> writes:
>
>> I have searched this list and found out that Python doesn't have a
>> mutable string class (it had an inefficient one, but this was removed
>> in 3.0). Are there any libraries outside the core that offer this?
>
> A mutable string would not (AFAICT) be usefully implementable as a
> subclass of the built-in string types. So even if such a type existed,
> it would not be useable with all the functionality that works with
> strings.
If applications ignore duck-typing and do isinstance(value, str), it's
arguably the application and not the value that is broken.
Besides, with the new __isinstance__ method, surely such a mutable string
could claim to be an instance of string without needing to inherit from
string?
> What is it you're trying to do that makes you search for a mutable
> string type? It's likely that a better approach can be found.
When dealing with very large strings, it is wasteful to have to duplicate
the entire string just to mutate a single character.
However, when dealing with very large strings, it's arguably better to
use the rope data structure instead.
http://en.wikipedia.org/wiki/Rope_(computer_science)
--
Steven
More information about the Python-list
mailing list