Python字符串拼接的7种方法及性能比较详解

Mason
Mason
发布时间:2026-10-14| 5人浏览过
原创

本文详细解析Python中7种字符串拼接方法,包括直接加号、join、format、百分号、多行括号、Template及F-strings。重点对比各方法在内存分配、执行效率及适用场景上的差异,推荐Python 3.6+使用F-strings以获得最佳性能与代码可读性。

在Python 3.x版本中,实现字符串拼接通常有以下几种常用方式:

1. 使用加号(+)操作符直接拼接


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

运行输出如下:

Hello World!

这种拼接方式在处理大量字符串时效率较低。因为Python使用加号连接两个字符串时,会创建一个新的字符串对象,这需要重新申请内存空间。当拼接的字符串数量较多时,频繁的内存分配和释放会显著影响程序运行效率。

2. 使用str.join()方法拼接


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

运行输出如下:

Hello World!

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


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

运行输出如下:

Hello, ,World,!

3. 使用str.format()方法拼接


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

运行输出如下:

Hello World!

使用此方法时,需注意字符串中花括号{}的数量必须与format()方法传入的参数数量完全一致,否则程序将抛出错误。

4. 使用百分号(%)操作符拼接


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

运行输出如下:

Hello World!

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

5. 使用括号()进行多行隐式拼接


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

运行输出如下:

Hello World!

当Python解释器遇到未闭合的小括号时,会自动将多行字符串合并为一行进行拼接。

6. 通过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}!

7. 使用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字符串拼接的7种方法及其性能对比。如需了解更多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 算法库。