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

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

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

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


当前回答

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

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

这和内置方法一样高效。

其他回答

这取决于你想做什么。如果你正在将一个变量格式化为一个字符串来打印,例如,你想要输出如下:

Hello, Bob

给定名称Bob,您将希望我们%s。print("Hello, %s" % my_variable) 它是有效的,它适用于所有数据类型(所以你不需要做str(my_variable)就像你做的"a" + str(5)))。

如果您需要执行许多附加操作来构建一个大字符串,您可以使用StringIO或cStringIO。接口就像一个文件。即:你写东西是为了给它附加文本。

如果你只是附加两个字符串,那么只需使用+。

使用add函数添加字符串:

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

输出:

Hello World
a='foo'
b='baaz'

a.__add__(b)

out: 'foobaaz'
str1 = "Hello"
str2 = "World"
newstr = " ".join((str1, str2))

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

这和内置方法一样高效。