Jeg ønsker en effektiv måde at tilføje en streng til en anden i Python på, bortset fra følgende.
var1 = "foo"
var2 = "bar"
var3 = var1 + var2
Er der nogen god indbygget metode at bruge?
Du må ikke optimere for tidligt. Hvis du ikke har nogen grund til at tro, at der er en hastighedsflaskehals forårsaget af strengkonkatenationer, så hold dig til +
og +=
:
s = 'foo'
s += 'bar'
s += 'baz'
Når det er sagt, hvis du sigter mod noget som Java's StringBuilder, er det kanoniske Python-idiom at tilføje elementer til en liste og derefter bruge str.join
til at sammenkæde dem alle til sidst:
l = []
l.append('foo')
l.append('bar')
l.append('baz')
s = ''.join(l)
str1 = "Hello"
str2 = "World"
newstr = " ".join((str1, str2))
Det sammenføjer str1 og str2 med et mellemrum som separatorer. Du kan også lave "".join(str1, str2, ...)
. str.join()
tager en iterabel, så du skal sætte strengene i en liste eller en tupel.
Det'er omtrent så effektivt som det kan blive for en indbygget metode.
Hvis du har brug for at udføre mange append-operationer for at opbygge en stor streng, kan du bruge StringIO eller cStringIO. Grænsefladen er som en fil, dvs. du skriver
for at tilføje tekst til den.
Hvis du blot skal tilføje to strenge, skal du blot bruge +
.