Voglio un modo efficiente per aggiungere una stringa ad un'altra in Python, diverso dal seguente.
var1 = "foo"
var2 = "bar"
var3 = var1 + var2
C'è qualche buon metodo integrato da usare?
Non ottimizzare prematuramente. Se non avete ragione di credere che ci sia un collo di bottiglia in termini di velocità causato dalle concatenazioni di stringhe, allora limitatevi a +
e +=
:
s = 'foo'
s += 'bar'
s += 'baz'
Detto questo, se state puntando a qualcosa come lo StringBuilder di Java, l'idioma canonico di Python è di aggiungere elementi ad una lista e poi usare str.join
per concatenarli tutti alla fine:
l = []
l.append('foo')
l.append('bar')
l.append('baz')
s = ''.join(l)
str1 = "Hello"
str2 = "World"
newstr = " ".join((str1, str2))
Questo unisce str1 e str2 con uno spazio come separatore. Potete anche fare "".join(str1, str2, ...)
. str.join()
prende un iterabile, quindi dovrete mettere le stringhe in una lista o in una tupla.
Questo è il massimo dell'efficienza per un metodo integrato.
Se avete bisogno di fare molte operazioni di appendimento per costruire una grande stringa, potete usare StringIO o cStringIO. L'interfaccia è come un file, cioè: si scrive
per aggiungervi del testo.
Se vuoi solo aggiungere due stringhe, usa semplicemente +
.