如何有效地将一个字符串附加到另一个字符串?有没有更快的替代方案:

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

若要处理列表中的多个字符串,请参见如何将列表中的项连接(联接)到单个字符串。

看我如何把一个变量的值在一个字符串(插值到字符串)?如果某些输入不是字符串,但结果仍然应该是字符串。


当前回答

另一种选择是使用.format,如下所示:

print("{}{}".format(var1, var2))

其他回答

不喜欢。

也就是说,在大多数情况下,最好一次性生成整个字符串,而不是追加到现有的字符串。

例如,不要这样做:obj1.name + ":" + str(obj1.count)

相反:使用“%s:%d”% (obj1.name, obj1.count)

这样更容易阅读,也更有效率。

str1 = "Hello"
str2 = "World"
newstr = " ".join((str1, str2))

用一个空格作为分隔符连接str1和str2。你也可以做“”。Join (str1, str2,…)Str.join()接受一个可迭代对象,因此必须将字符串放在列表或元组中。

这和内置方法一样高效。

不要过早地优化。如果你没有理由相信字符串连接会导致速度瓶颈,那么就坚持使用+和+=:

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

也就是说,如果你的目标是像Java的StringBuilder这样的东西,标准的Python习惯用法是将项添加到列表中,然后使用str.join将它们全部连接到末尾:

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

s = ''.join(l)

这取决于你的应用。如果要遍历数百个单词,并希望将它们全部追加到列表中,那么.join()更好。但是如果你要组成一个长句子,你最好使用+=。

使用add函数添加字符串:

str1 = "Hello"
str2 = " World"
str3 = str1.__add__(str2)
print(str3)

输出:

Hello World