HOWTO · Python

在 Python 中向字符串添加字符

本教程演示了如何在 Python 中向字符串添加字符。

本页内容

在 Python 中向字符串添加字符,可以使用 + 拼接,或将字符放入格式化字符串中。一个字符由只包含一个字符的字符串表示。由于 Python 字符串不可变,这些操作会返回新字符串,不会修改原字符串。追加会把文本放到末尾;若要插入到其他位置,则需在该位置切分原字符串后再拼接。

运行此示例:

本节中的代码以及显示的标签或输出仍为英文。

message = "Hello"
character = "!"
result = message + character
print(result)

在 Python 中使用 + 运算符向字符串添加字符

如果只是简单拼接,使用 + 即可。两个操作数都必须是字符串。运算结果是一个新字符串,因此执行下面的表达式后,message 仍然是 "Hello"。

本节中的代码以及显示的标签或输出仍为英文。

message = "Hello"
character = "!"
result = message + character
print(result)

如果要添加的值是数字,请先使用 str() 将其转换为字符串。例如,"Page " + str(3) 会在转换后拼接文本和数字。若直接把数字与字符串相加,由于操作数类型不匹配,会引发 TypeError。

若要在已知索引处插入内容,可将插入位置前后的切片与新字符拼接:text[:index] + character + text[index:]。这同样会创建一个新字符串。请根据要插入的位置选择有效索引,并记住 Python 字符串索引从零开始。

在 Python 中使用 join() 方法向字符串添加字符

join() 用于组合由字符串组成的可迭代对象。调用此方法的字符串会成为每对元素之间的分隔符;它并不是专门用于追加内容的操作。若要组合片段且不在中间添加文本,请使用空字符串作为分隔符;若结果需要分隔符,也可以选择逗号等字符。

本节中的代码以及显示的标签或输出仍为英文。

parts = ["red", "green", "blue"]
result = ", ".join(parts)
print(result)

可迭代对象中的每个元素都必须是字符串。拼接前,请先转换非字符串值,例如使用 str(value)。如果只是给现有字符串添加一个后缀,通常用 + 表达最清楚;如果要收集多个片段,尤其是需要使用统一分隔符时,join() 会更合适。

在 Python 中使用 str.format() 方法向字符串添加字符

str.format() 会将值放入花括号占位符中。先把占位符放在各部分应出现的位置,再将相应的值传给该方法。相邻的占位符会直接拼接,因此除非在模板中加入分隔符,否则结果中不会自动添加分隔符。

本节中的代码以及显示的标签或输出仍为英文。

name = "Ada"
punctuation = "!"
result = "Hello, {}{}".format(name, punctuation)
print(result)

此方法适用于支持 str.format() 的 Python 版本;当你希望将模板与值分开时,它很有用。如果有多个占位符,请按相同顺序传入对应的值;也可以使用命名占位符,例如 "Hello, {name}!".format(name="Ada"),让对应关系更加明确。

在 Python 中使用字符串插值(f字符串)向字符串添加字符

f字符串可以简洁地将值和表达式嵌入字符串字面量中,需要 Python 3.6 或更高版本。在 f 前缀之后,将变量或表达式放在花括号内即可。

本节中的代码以及显示的标签或输出仍为英文。

name = "Ada"
punctuation = "!"
result = f"Hello, {name}{punctuation}"
print(result)

当内嵌模板易于阅读时,可以使用 f字符串。插入的值会转换为文本并显示在结果字符串中;原字符串和变量都不会改变。较旧版本的 Python 可以改用 str.format() 或字符串拼接。

在 Python 中使用 % 运算符向字符串添加字符

% 字符串格式化是一种旧式替代方案。%s 这样的占位符标出值应放置的位置,再由运算符提供该值。如果有多个占位符,请按对应顺序传入元组。

本节中的代码以及显示的标签或输出仍为英文。

name = "Ada"
punctuation = "!"
result = "Hello, %s%s" % (name, punctuation)
print(result)

编写新代码时,优先选择最容易看懂模板的格式化方式。维护已有代码时,如果原本就使用这种语法,% 格式化仍然很实用。

结论

简单追加时使用 +;要将文本与值组合起来,可使用 str.format() 或 f字符串;要用分隔符组合多个字符串,则使用 join()。拼接或连接前,请先将数字转换为字符串。无论使用哪种方式,操作都会生成新字符串;若需保留结果,请将其赋值给变量。上面的示例是可运行的 Python 代码片段,但此数据包未提供执行记录,因此这里不声称有任何实际运行输出。