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 2014年2月08日 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

AltStyle によって変換されたページ (->オリジナル) /