[Tutor] working with strings in python3

Westley Martínez anikom15 at gmail.com
Mon Apr 18 23:26:23 EDT 2011


On Tue, 2011年04月19日 at 02:16 +0000, Steven D'Aprano wrote:
> On 2011年4月19日 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.


More information about the Python-list mailing list

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