Python字符串拼接:高效方法与性能优化指南

这是文章《Python字符串拼接》的第1部分(共1部分)。

内容片段: 字符串拼接是编程中非常常见的操作。Python中可以使用多种方法进行字符串拼接。本教程旨在探讨在Python程序中拼接字符串的不同方法。

Python 字符串连接

我们可以使用以下方式执行字符串连接:

  • 使用 + 运算符
  • 使用 join() 方法
  • 使用 % 运算符
  • 使用 format() 函数
  • 使用 f-string (字面字符串插值)

使用 + 运算符进行字符串连接

这是字符串拼接的最简单方法。让我们看一个简单的例子。

s1 = 'Apple'
s2 = 'Pie'
s3 = 'Sauce'

s4 = s1 + s2 + s3

print(s4)

输出结果:

ApplePieSauce

让我们来看另一个例子,其中我们将从用户输入中获取两个字符串并将它们连接起来。

s1 = input('请输入第一个字符串:\n')
s2 = input('请输入第二个字符串:\n')

print('拼接后的字符串 =', s1 + s2)

输出:

请输入第一个字符串:
你好
请输入第二个字符串:
世界
拼接后的字符串 = 你好世界
python string concatenation
>>>'你好' + 4
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 只能将字符串(而非"int")与字符串连接

我们可以使用str()函数来获得一个对象的字符串表示。让我们看看如何将一个字符串与整数或另一个对象连接起来。

print('你好' + str(4))


class Data:
    id = 0

    def __init__(self, i):
        self.id = i

    def __str__(self):
        return 'Data[' + str(self.id) + ']'


print('你好 ' + str(Data(10)))

输出:

你好4
你好 Data[10]

+ 运算符最大的问题是我们无法在字符串之间添加分隔符或定界符。例如,如果我们要使用空格分隔符连接”你好”和”世界”,我们必须将其写为”你好” + ” ” + “世界”。

使用join()函数进行字符串拼接

我们可以使用join()函数来用分隔符连接字符串。当我们有一系列字符串时,比如字符串的列表或元组,这个函数非常有用。如果你不想要分隔符,可以使用一个空字符串来调用join()函数。

s1 = '你好'
s2 = '世界'

print('使用join()拼接的字符串 =', "".join([s1, s2]))

print('使用join()和空格拼接的字符串 =', " ".join([s1, s2]))

输出:

使用join()拼接的字符串 = 你好世界
使用join()和空格拼接的字符串 = 你好 世界

使用%操作符进行字符串连接

我们可以使用百分号(%)运算符进行字符串格式化,它也可以用于字符串的连接。当我们想要连接字符串和进行简单格式化时,它非常有用。

s1 = '你好'
s2 = '世界'

s3 = "%s %s" % (s1, s2)
print('使用%运算符进行字符串拼接 =', s3)

s3 = "%s %s 来自 JournalDev - %d" % (s1, s2, 2018)
print('使用%运算符进行带格式的字符串拼接 =', s3)

输出:

使用%运算符进行字符串拼接 = 你好 世界
使用%运算符进行带格式的字符串拼接 = 你好 世界 来自 JournalDev - 2018

使用format()函数进行字符串拼接

我们还可以使用字符串的format()函数来进行字符串的拼接和格式化。

s1 = '你好'
s2 = '世界'

s3 = "{}-{}".format(s1, s2)
print('使用format()进行字符串拼接 =', s3)

s3 = "{in1} {in2}".format(in1=s1, in2=s2)
print('使用format()进行字符串拼接 =', s3)

输出:

使用format()进行字符串拼接 = 你好-世界
使用format()进行字符串拼接 = 你好 世界

Python的字符串格式化函数非常强大,仅将其用于字符串的连接并不是其适当的用法。

使用f字符串进行字符串连接

如果你使用的是Python 3.6或更高版本,你也可以使用f-string进行字符串拼接。这是一种新的字符串格式化方式,在PEP 498 – 字面字符串插值中引入。

s1 = '你好'
s2 = '世界'

s3 = f'{s1} {s2}'
print('使用f-string进行字符串拼接 =', s3)

name = 'Pankaj'
age = 34
d = Data(10)

print(f'{name} 的年龄是 {age} 且 d={d}')

输出:

使用f-string进行字符串拼接 = 你好 世界
Pankaj 的年龄是 34 且 d=Data[10]

与format()函数相比,Python的f-string更清晰、更易于编写。当用对象参数作为字段替换时,它还会调用str()函数。

结论

在Python中,可以通过多种方式进行字符串格式化。根据需求选择使用它们。如果需要将一系列字符串连接起来并且带有分隔符,可以使用join()函数。如果除了连接字符串还需要进行格式化,可以使用format()函数或者f-string。请注意,f-string只能在Python 3.6或更高版本中使用。

您可以从我们的GitHub存储库中查看完整的Python脚本和更多Python示例。

bannerAds