get-a-cup-of-coffee slow

Skip Montanaro skip at pobox.com
Fri Aug 10 00:45:45 CEST 2001


    Grant> Why is the first one so slow?  I assume it has to do with
    Grant> repeatedly appending characters to a string.  If so, is it
    Grant> because "s +=" is implemented as "s = s +", where the new one is
    Grant> always an appended copy of the original?  (I guess I would hope
    Grant> that in the case of a string "+=" operation, Python would leave a
    Grant> little spare space at the end of the new string so multiple
    Grant> appends would not have to make a copy with _each_ append.)

Repeat the mantra: "strings are immutable, strings are immutable, strings
are immutable". ;-)

    Grant> Also, I tried writing something like this with a list (which are
    Grant> presumably more suited to being appended), but then I realized
    Grant> that I didn't know how to write the contents of a list to a file
    Grant> as a stream of bytes.  There's probably a simple way to do that:
    Grant> what is it?

    >>> l = ["abc", "def", "@", "NOSPAM", ".foo", ".org"]
    >>> s = "".join(l)
    >>> print s
    abcdef at NOSPAM.foo.org

-- 
Skip Montanaro (skip at pobox.com)
http://www.mojam.com/
http://www.musi-cal.com/




More information about the Python-list mailing list