On 10/02/2011 06:34 PM, Alex Gaynor wrote: > There are a number of issues that are being conflated by this thread. > > 1) Should str += str be fast. In my opinion, the answer is an obvious and > resounding no. Strings are immutable, thus repeated string addition is > O(n**2). This is a natural and obvious conclusion. Attempts to change this > are only truly possible on CPython, and thus create a worse enviroment for > other Pythons, as well as a quite misleading, as they'll be extremely > brittle. It's worth noting that, to my knowledge, JVMs haven't attempted > hacks like this. CPython is already misleading and ahead of JVM, because the str += str optimization has been applied to Python 2 some years ago - see http://hg.python.org/cpython-fullhistory/rev/fb6ffd290cfb?revcount=480 I like Python's immutable strings and consider it a good default for strings. Nevertheless a mutable string would be useful for those situations when you know you are about to manipulate a string-like object a number of times, where immutable strings require too many allocations. I don't think Python needs a StringBuilder - constructing strings using a list of strings or StringIO is well-known and easy. Mutable strings are useful for the cases where StringBuilder doesn't suffice because you need modifications other than appends. This is analogous to file writes - in practice most of them are appends, but sometimes you also need to be able to seek and write stuff in the middle. Hrvoje
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4