文章目录
- 1. 使用加号(+)
- 2. 使用`str.join()`方法
- 3. 使用格式化字符串(f-strings, `%` 操作符, `.format()` 方法)
- 4. 使用列表推导式和`join()`结合
- 性能对比
在Python中,字符串拼接是将两个或多个字符串合并成一个新字符串的过程。Python提供了多种字符串拼接的方法,这里列出一些常用的方法:
1. 使用加号(+)
这是最直接也是最常见的字符串拼接方法,只需使用加号(+)将两个字符串连接起来。
str1 = "Hello, "
str2 = "World!"
result = str1 + str2
print(result) # 输出: Hello, World!
2. 使用str.join()
方法
如果你想要将多个字符串拼接成一个,特别是当它们存储在列表或元组中时,join()
方法非常有用。注意,join()
方法是字符串类型的方法,因此你需要先确定一个连接符(通常是空字符串''
或空格' '
),然后调用这个连接符的join()
方法,并将需要拼接的字符串序列作为参数传入。
words = ["Hello", "world", "!"]
result = ' '.join(words) # 使用空格作为连接符
print(result) # 输出: Hello world !# 或者,如果你想要没有空格的拼接
result_no_space = ''.join(words)
print(result_no_space) # 输出: Helloworld!
3. 使用格式化字符串(f-strings, %
操作符, .format()
方法)
这些方法在拼接字符串时也非常有用,特别是当拼接的字符串中包含变量时。
- f-strings(Python 3.6+):
name = "World"
greeting = f"Hello, {name}!"
print(greeting) # 输出: Hello, World!
%
操作符:
name = "World"
greeting = "Hello, %s!" % name
print(greeting) # 输出: Hello, World!
.format()
方法:
name = "World"
greeting = "Hello, {}!".format(name)
print(greeting) # 输出: Hello, World!# 或者,使用关键字参数
greeting = "Hello, {name}!".format(name=name)
print(greeting) # 输出: Hello, World!
4. 使用列表推导式和join()
结合
当你想从多个字符串(可能是基于某些条件生成的)中拼接成一个新字符串时,可以先将字符串收集到一个列表中,然后使用join()
方法将它们拼接起来。
words = ["Hello", "world"]
# 假设我们想要在每个单词之间加上一个空格和一个感叹号
result = ''.join([word + '!' + ' ' for word in words]).strip()
print(result) # 输出: Hello! world!
# 注意:strip()用于去除字符串末尾的空格
以上就是在Python中进行字符串拼接的一些常用方法。选择哪种方法取决于你的具体需求和偏好。
性能对比
原因是这样的,上一篇Python面试之可变对象和不可变对象中讲过字符串是不可变对象,当用操作符+连接字符串的时候,每执行一次+都会申请一块新的内存,然后复制上一个+操作的结果和本次操作的右操作符到这块内存空间,因此用+连接字符串的时候会涉及好几次内存申请和复制。而join在连接字符串的时候,会先计算需要多大的内存存放结果,然后一次性申请所需内存并将字符串复制过去,这是为什么join的性能优于+的原因。所以在连接字符串数组的时候,我们应考虑优先使用join。