Comment ajouter une chaîne à une autre en Python ?

Je cherche un moyen efficace d'ajouter une chaîne de caractères à une autre en Python, autre que ce qui suit.

var1 = "foo"
var2 = "bar"
var3 = var1 + var2

Existe-t-il une bonne méthode intégrée à utiliser ?

N'optimisez pas prématurément. Si vous n'avez aucune raison de croire qu'il y a un goulot d'étranglement causé par les concaténations de chaînes de caractères, contentez-vous de + et += :

s  = 'foo'
s += 'bar'
s += 'baz'

Ceci étant dit, si vous visez quelque chose comme le StringBuilder de Java, l'idiome Python canonique est d'ajouter des éléments à une liste et d'utiliser str.join pour les concaténer à la fin :

l = []
l.append('foo')
l.append('bar')
l.append('baz')

s = ''.join(l)
Commentaires (3)
str1 = "Hello"
str2 = "World"
newstr = " ".join((str1, str2))

Cela joint str1 et str2 avec un espace comme séparateur. Vous pouvez aussi faire "&quot ;.join(str1, str2, ...). str.join() prend un itérable, donc vous devez mettre les chaînes dans une liste ou un tuple.

C'est à peu près tout ce qu'il y a de plus efficace pour une méthode intégrée.

Commentaires (1)

Si vous avez besoin d'effectuer de nombreuses opérations d'ajout pour construire une grande chaîne, vous pouvez utiliser StringIO ou cStringIO. L'interface est comme un fichier, c'est-à-dire que vous écrivez pour y ajouter du texte.

Si vous voulez simplement ajouter deux chaînes de caractères, utilisez simplement +.

Commentaires (0)