Cela dépend de ce que vous faites.
Après Python 2.5, la concaténation de chaînes avec l'opérateur + est assez rapide. Si vous êtes juste de la concaténation d'un couple de valeurs, à l'aide de l'opérateur + qui fonctionne le mieux:
>>> x = timeit.Timer(stmt="'a' + 'b'")
>>> x.timeit()
0.039999961853027344
>>> x = timeit.Timer(stmt="''.join(['a', 'b'])")
>>> x.timeit()
0.76200008392333984
Cependant, si vous mettez ensemble une chaîne de caractères dans une boucle, il est préférable d'utiliser la liste de rejoindre méthode:
>>> join_stmt = """
... joined_str = ''
... for i in xrange(100000):
... joined_str += str(i)
... """
>>> x = timeit.Timer(join_stmt)
>>> x.timeit(100)
13.278000116348267
>>> list_stmt = """
... str_list = []
... for i in xrange(100000):
... str_list.append(str(i))
... ''.join(str_list)
... """
>>> x = timeit.Timer(list_stmt)
>>> x.timeit(100)
12.401000022888184
...mais c'est un avis que vous devez être en train de réunir un nombre relativement élevé de chaînes avant la différence est notable.