On Tue, 2011-04-19 at 02:16 +0000, Steven D'Aprano wrote: > On Tue, 19 Apr 2011 10:34:27 +1000, James Mills wrote: > > > Normally it's considered bad practise to concatenate strings. > > *Repeatedly*. > > There's nothing wrong with concatenating (say) two or three strings. > What's a bad idea is something like: > > > s = '' > while condition: > s += "append stuff to end" > > Even worse: > > s = '' > while condition: > s = "insert stuff at beginning" + s > > because that defeats the runtime optimization (CPython only!) that > *sometimes* can alleviate the badness of repeated string concatenation. > > See Joel on Software for more: > > http://www.joelonsoftware.com/articles/fog0000000319.html > > But a single concatenation is more or less equally efficient as string > formatting operations (and probably more efficient, because you don't > have the overheard of parsing the format mini-language). > > For repeated concatenation, the usual idiom is to collect all the > substrings in a list, then join them all at once at the end: > > pieces = [] > while condition: > pieces.append('append stuff at end') > s = ''.join(pieces) > > > > > -- > Steven
Thanks Steven, I was about to ask for an efficient way to concatenate an arbitrary amount of strings. -- http://mail.python.org/mailman/listinfo/python-list