Python3 字符串拼接的7种实现方式与性能对比

云舒
云舒
发布时间:2026-10-13| 7人浏览过
原创

本文详解Python3中字符串拼接的七种方法,涵盖+运算符、str.join()、str.format()、%操作符、多行括号、Template模板及F-strings。重点分析各方法的性能差异,指出F-strings在Python3.6+中的高效性,并对比不同场景下的适用性,帮助开发者选择最优方案。

Python 3.0版本(常被称为Python 3000或Py3k)是一次重大升级,其设计摒弃了向下兼容以减轻历史包袱。

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

>>> 'Hello' + ' ' + 'World' + '!'
'Hello World!'

尽管直观,但此方式效率较低。因为Python中使用+连接字符串时会创建新字符串对象,导致频繁的内存申请。当拼接大量字符串时,这种开销会显著影响运行效率。

第二种方法:使用str.join()函数进行拼接。

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

该方法常用于将可迭代对象(如列表)转换为字符串。join()中的分隔符可以是空字符串,也可以是任意指定字符。若指定非空分隔符,结果字符串中的原元素将被该分隔符隔开。

第三种方法:使用str.format()函数进行拼接。

>>> '{} {}!'.format('Hello', 'World')
'Hello World!'

使用format()时,需确保字符串中花括号{}的数量与传入的参数数量完全一致,否则将引发错误。

第四种方法:使用百分号(%)操作符进行拼接。

>>> '%s %s!' % ('Hello', 'World')
'Hello World!'

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

第五种方法:利用括号()进行多行字符串拼接。

>>> (
...   'Hello'
...   ' '
...   'World'
...   '!'
... )
'Hello World!'

Python解释器在遇到未闭合的小括号时,会自动将跨行的字符串拼接为单行字符串。

第六种方法:使用string模块中的Template对象进行拼接。

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

Template通过初始化包含占位符key的字符串,随后调用substitute或safe_substitute方法,将参数值映射到对应key上,从而实现字符串插入。其优势在于即使参数缺失也不会抛出异常,例如:

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

第七种方法:使用F-strings(格式化字符串字面量)进行拼接。

在Python 3.6.2版本中,PEP 498引入了F-strings机制,提供了一种将Python表达式直接嵌入字符串的简洁方式:

>>> s1 = 'Hello'
>>> s2 = 'World'
>>> f'{s1} {s2}!'
'Hello World!'

F-strings支持在表达式中调用函数:

>>> def power(x):
...   return x*x
... 
>>> x = 5
>>> f'{x} * {x} = {power(x)}'
'5 * 5 = 25'

此外,F-strings的执行速度显著优于%-string和str.format(),是性能要求较高场景下的推荐选择。

总结

上述内容介绍了Python3中字符串拼接的七种主要方法。希望这些信息能为您提供帮助,如有任何疑问欢迎留言,我们将及时回复。感谢对本站的支持!

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

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 算法库。