Python 字符串拼接的七种常用方法及性能对比

栗子
栗子
发布时间:2026-10-13| 5人浏览过
原创

本文详细解析 Python 中字符串拼接的七种主要方式,包括操作符+、join、format、%、多行括号、Template 及 F-strings。重点对比各方法的性能差异,指出 F-strings 在 Python 3.6.2+ 版本中的速度优势,并分析内存分配对效率的影响,帮助开发者根据场景选择最优方案。

在 Python 开发中,实现字符串拼接通常有以下几种主流方式:

第一种方法是直接使用加号(+)操作符进行拼接。

s = 'Hello'+' '+'World'+'!'
print(s)

运行上述代码后的输出结果为: Hello World!

尽管这种方式直观,但在处理大量字符串连接时效率较低。这是因为 Python 中字符串是不可变对象,使用 + 拼接两个字符串时,解释器会创建一个新的字符串对象,并重新申请内存空间。当需要拼接的字符串数量较多时,频繁的内存分配和拷贝操作会显著影响程序运行效率。

第二种方法是通过 str.join() 函数进行拼接。

strlist=['Hello',' ','World','!']
print(''.join(strlist))

运行上述代码后的输出结果为: Hello World!

该方法常用于将字符串列表或集合转换为单个字符串。''.join() 中的引号内可以放置空字符串,也可以指定任意分隔符。当指定非空分隔符时,集合中的字符串元素将被该分隔符隔开。例如:

​strlist=['Hello',' ','World','!']
print(','.join(strlist))

运行上述代码后的输出结果为: Hello, ,World,!

第三种方法是通过 str.format() 函数进行拼接。

s='{} {}!'.format('Hello','World')
print(s)

运行上述代码后的输出结果为: Hello World!

使用此方式拼接字符串时,需注意花括号 {} 的数量必须与 format 方法传入的参数数量严格一致,否则程序将抛出异常。

第四种方法是通过百分号 (%) 操作符进行拼接。

s = '%s %s!' % ('Hello', 'World')
print(s)

运行上述代码后的输出结果为: Hello World!

这种方式的用法与 str.format() 基本相似,均属于传统的字符串格式化手段。

第五种方法是通过小括号 () 实现多行字符串拼接。

s = (
  'Hello'
  ' '
  'World'
  '!'
)
print(s)

运行上述代码后的输出结果为: Hello World!

当 Python 解释器遇到未闭合的小括号时,会自动将跨行的字符串字面量拼接为单行字符串,无需显式使用连接符。

第六种方法是通过 string 模块中的 Template 对象进行拼接。

from string import Template
s = Template('${s1} ${s2}!') 
print(s.safe_substitute(s1='Hello',s2='World'))

运行上述代码后的输出结果为: Hello World!

Template 的实现机制是首先通过 Template 初始化一个包含占位符 key 的字符串模板。随后调用 substitute 或 safe_substitute 方法,将模板中的 key 与传入的参数进行映射替换,从而在指定位置插入字符串。这种方式的优势在于安全性较高,即使参数缺失也不会引发异常,例如:

from string import Template
s = Template('${s1} ${s2} ${s3}!') 
print(s.safe_substitute(s1='Hello',s2='World'))

运行上述代码后的输出结果为: Hello World ${s3}!

第七种方法是通过 F-strings(格式化字符串字面量)进行拼接。

在 Python 3.6.2 版本中,PEP 498 提出了一种新的字符串格式化机制,被称为“字符串插值”,更常见的称呼是 F-strings。F-strings 提供了一种简洁且高效的方式,将 Python 表达式直接嵌入字符串中进行格式化:

s1='Hello'
s2='World'
print(f'{s1} {s2}!')

运行上述代码后的输出结果为: Hello World!

在 F-strings 中,我们不仅可以嵌入变量,还可以直接执行函数调用:

def power(x):
  return x*x
x=4
print(f'{x} * {x} = {power(x)}')

运行上述代码后的输出结果为: 4 * 4 = 16

此外,F-strings 的执行速度非常快,其性能显著优于传统的 %-string 和 str.format() 这两种格式化方法。

总结

以上内容介绍了 Python 中多种字符串拼接的方法及其特点。希望这些信息能对大家有所帮助,如有任何疑问欢迎留言交流,作者会及时回复。同时感谢各位读者对本站的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。