HOWTO · Python
在 Python 中将一个字符串追加到另一个字符串
在 Python 中,可以使用 2 种主要方法将一个字符串追加到另一个字符串上,即+ 运算符和 str.join()函数。
本页内容
在 Python 中,要将一个字符串追加到另一个字符串,可以使用 + 运算符。需要用指定的分隔符组合一个字符串可迭代对象时,可以使用 str.join()。这两种方式都会生成一个新字符串;应根据要组合的是少量值还是一个集合来选择。
使用 + 运算符追加字符串
+ 运算符会从左到右连接字符串,并返回一个新字符串。组合后的文本需要空格或其他分隔符时,必须显式添加;字符串连接不会自动插入空格。
运行以下示例:
本节中的代码以及显示的标签或输出仍为英文。
first = "Hello"
second = "World"
combined = first + " " + second
print(combined)
Hello World
表达式中的空格分隔了两个值,print() 会输出组合后的字符串。更新变量时,也可以写成 first += second。这会将 first 重新绑定到连接后的结果;它不会原地修改原字符串,因为 Python 字符串是不可变的。
对于两个或少数几个值,使用 + 可以让表达式直接明了。如果在循环中反复连接字符串来构建较长的结果,每次操作都会生成另一个字符串结果。如果这样能让代码更清晰,可以先收集各个片段,再一次性连接;尤其是这些片段本来就来自一个可迭代对象时。
使用 str.join() 组合字符串
str.join() 是在分隔符字符串上调用的,其唯一参数是一个包含字符串的可迭代对象。它会在相邻元素之间插入分隔符。例如," ".join(["Hello", "World", "from", "Python"]) 会用空格组合四个单词。更改分隔符,就会改变单词之间的内容:"-".join(["red", "green", "blue"]) 使用连字符,而 "".join(["Py", "thon"]) 不添加分隔符。
传给 join() 的每个元素都必须已经是字符串。如果值中包含数字或其他类型,应先转换每个值,例如使用 str(value),或者在构建集合时对值进行格式化。字符串本身也是可迭代对象,因此直接将一个单词传给 join() 时,它会被视为字符序列;如果要组合的是完整字符串,请传入由这些字符串组成的集合。
如何选择 + 或 str.join()
对于数量少且固定的字符串,例如将姓名添加到问候语中,可以使用 +。这样各个片段及其顺序一目了然。如果值已经在列表或其他可迭代对象中,或者许多片段之间需要分隔符,可以使用 str.join()。如果片段应该直接相连,空分隔符就很有用。
从性能角度看,两种方式都没有普遍适用的优势。应根据数据的形式选择合适的写法,并清楚表达预期的分隔方式。组合非字符串值时,应先有意地转换或格式化这些值,再进行连接。对于常见情况,可以记住:+ 组合字符串表达式,而 str.join() 则使用分隔符组合字符串可迭代对象中的元素。