On Fri, 24 Mar 2006 15:40:17 +0100, "Diez B. Roggisch" <[EMAIL PROTECTED]> 
wrote:
>Tim N. van der Leeuw wrote:
>> I also wonder if it wouldn't be faster to put the numbers into a list
>> and join the list into a string -- did you test with that?
>
>It will be faster - the naive string concatenation is quadratic, whereas the
>list-based approach is linear.

It won't be any faster in CPython 2.4 or newer.  This kind of string 
concatenation is optimized so as to be linear:

$ python -m timeit -s "x = ''" "for i in xrange(1000): x += 'x'"
1000 loops, best of 3: 335 usec per loop
$ python -m timeit -s "x = ''" "for i in xrange(10000): x += 'x'"
100 loops, best of 3: 3.35 msec per loop
$ python -m timeit -s "x = ''" "for i in xrange(100000): x += 'x'"
10 loops, best of 3: 33.2 msec per loop
$ python -m timeit -s "x = ''" "for i in xrange(1000000): x += 'x'"
10 loops, best of 3: 347 msec per loop
$ python -m timeit -s "x = ''" "for i in xrange(10000000): x += 'x'"
10 loops, best of 3: 3.48 sec per loop
$ 

Jean-Paul
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to