As a result of the comments in my answer on this thread, I wanted to know what the speed difference is between the +=
operator and ''.join()
So what is the speed comparison between the two?
Advertisement
Answer
From: Efficient String Concatenation
Method 1:
def method1(): out_str = '' for num in xrange(loop_count): out_str += 'num' return out_str
Method 4:
def method4(): str_list = [] for num in xrange(loop_count): str_list.append('num') return ''.join(str_list)
Now I realise they are not strictly representative, and the 4th method appends to a list before iterating through and joining each item, but it’s a fair indication.
String join is significantly faster then concatenation.
Why? Strings are immutable and can’t be changed in place. To alter one, a new representation needs to be created (a concatenation of the two).