What is the most pythonic way to build up large strings?

Steven D'Aprano steve+comp.lang.python at pearwood.info
Sat Feb 8 06:06:24 EST 2014


On Sat, 08 Feb 2014 01:56:46 -0800, cstrutton11 wrote:

> On Saturday, February 8, 2014 3:13:54 AM UTC-5, Asaf Las wrote:
>> note, due to strings are immutable - for every line in sum operation
>> above you produce new object and throw out older one. you can write
>> one string spanned at multiple lines in very clear form.
>> 
> I get what your saying here about immutable strings.  Is there anyway
> efficiently build large strings with lots of conditional inclusions,
> repetative sections built dynamically by looping (see the field section
> above)etc. 

Yes. Build up all the substrings individually, storing them in a list. 
Then, when you are ready to actually use the string, assemble it in one 
go.

substrings = []
for x in whatever():
    if condition():
        substrings.append("something")

process("".join(substrings))


> Is there a mutable string class?

No. Well, actually there is, but it's a toy, and operates under the hood 
by creating new immutable strings, so there's no point using it. It may 
even have been removed from more recent versions of Python.



-- 
Steven



More information about the Python-list mailing list