Como é que eu aponto uma corda a outra em Python?

Quero uma forma eficiente de anexar uma corda a outra em Python, além das seguintes.

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

Há algum bom método embutido para usar?

Don't optimize prematuramente. Se você não tem motivos para acreditar que há's um gargalo de velocidade causado por concatenações de strings, então simplesmente fique com + e +=:

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

Dito isto, se você're objetivando algo como Java's StringBuilder, o idioma canônico Python é adicionar itens a uma lista e então usar str.join para concatená-los todos no final:

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

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

Que une o str1 e str2 com um espaço como separadores. Você também pode fazer "".join(str1, str2, ...). str.join() leva um iterável, então você'teria que colocar as strings em uma lista ou um tuple.

Isso's é o mais eficiente que se pode obter para um método de construção.

Comentários (1)

Se você precisar fazer muitas operações anexas para construir uma grande string, você pode usar StringIO ou cStringIO. A interface é como um arquivo. Ou seja: você escreve para anexar texto a ele.

Se você'está apenas anexando duas cordas, então use +.

Comentários (0)