在 Python 中处理字符串时,你可能必须将字符串拆分为子字符串。或者你可能需要将较小的块连接在一起以形成一个字符串。Python 的 split()join() 字符串方法可帮助你轻松完成这些任务。

在本教程中,你将通过大量示例代码了解 split()join() 字符串方法。

由于 Python 中的字符串是不可变的,因此你可以在不修改原始字符串的情况下调用它们的方法。让我们开始吧。

Python split() 方法的语法

当需要将字符串拆分为子字符串时,可以使用 split() 方法。

split() 方法作用于一个字符串,并返回一个子字符串列表,语法是:

<string>.split(sep,maxsplit)

在上面的语法中:

  • <string> 是任何有效的 Python 字符串,
  • sep 是你要拆分的分隔符,它应该被指定为一个字符串。

例如,如果你想在出现逗号时拆分 <string>,你可以设置 sep = ","

  • sep 是一个可选参数。 默认情况下,此方法按照空格拆分字符串。
  • maxsplit 是一个可选参数,指示你想要拆分 <string> 的次数。
  • maxsplit 的默认值为 -1,它在所有出现的 sep 处拆分字符串。
如果你想在出现第一个逗号时拆分 <string>,可以设置 maxsplit = 1

并且设置 maxsplit = 1 会给你留下两个块——一个是在第一个逗号之前的 <string> 部分,另一个是在第一个逗号之后的 <string> 部分。

当你拆分一个字符串时,你会得到 2 个块。当你将字符串拆分两次时,你将获得 3 个块。当你将字符串拆分 k 次时,你将获得 k+1 个块。

▶ 让我们举几个例子来看看 split() 方法的作用。

Python split() 方法示例

让我们从下面显示的 my_string 开始。

my_string = "I code for 2 hours everyday"

my_string 上调用 split() 方法,没有参数 sepmaxsplit

my_string.split()
image-50

你可以看到 my_string 已在所有空格上拆分并返回子字符串列表,如上所示。

▶ 现在让我们考虑以下示例。这里, my_string 有水果的名字,用逗号分隔。

my_string = "Apples,Oranges,Pears,Bananas,Berries"

现在让我们按逗号分割 my_string —— 在方法调用中设置 sep = "," 或仅指定 ","

my_string.split(",")

正如预期的那样,split() 方法返回一个水果列表,其中 my_string 中的每个水果现在都是一个列表项。

image-51

▶ 现在让我们也使用可选的 maxsplit 参数,将其设置为等于 2。

my_string.split(",",2)
image-52

让我们尝试解析返回的列表。

回想一下 my_string"Apples,Oranges,Pears,Bananas,Berries",我们决定用逗号(",")分开。

  • 第一个逗号在 Apples 之后,在第一次拆分之后,你将有 2 个项目,ApplesOranges,Pears,Bananas,Berries
  • 第二个逗号在 Oranges 之后。在第二次拆分后,你将拥有 3 个项目,ApplesOrangesPears,Bananas,Berries
  • 此时,你已达到 maxsplit 计数 2,并且无法进行进一步的拆分。
  • 这就是为什么第二个逗号之后的字符串部分在返回的列表中作为单个项目集中在一起的原因。

我希望你理解 split() 方法和参数 sepmaxsplit 是如何工作的。

Python join() 方法的语法

现在你知道如何将字符串拆分为子字符串,是时候学习如何使用 join() 方法从子字符串形成字符串了。

Python 的 join() 方法的语法是:

<sep>.join(<iterable>)

这里,

  • <iterable> 是任何包含子字符串的 Python 可迭代对象,例如一个列表或一个元组,以及
  • <sep> 是你想要加入子字符串的分隔符。
本质上,join() 方法使用 <sep> 作为分隔符来连接 <iterable> 中的所有项目。

▶ 看一些示例。

Python join() 方法示例

在之前关于 split() 方法的部分中,你将 my_string 拆分为按逗号分割的列表。让我们将列表称为 my_list

现在,你将使用 join() 方法形成一个字符串,以将返回列表中的项目放在一起。 my_list 中的项目都是水果的名称。

my_list = my_string.split(",")

# after my_string is split my_list is:
['Apples', 'Oranges', 'Pears', 'Bananas', 'Berries']

📑 请注意,参照的分隔符应指定为字符串。如果不这样做,你将遇到语法错误,如下所示。

,.join(my_list)
image-49

▶ 要使用逗号作为分隔符连接 my_list 中的项目,请使用 "," 而不是 ,。如下面的代码片段所示。

", ".join(my_list)

上面的代码行使用逗号后跟空格作为分隔符来连接 my_list 中的项目。

image-53

你可以指定你选择的任何分隔符。这一次,你将使用 3 个下划线(___)来连接 my_list 中的项目。

"___".join(my_list)
image-54

my_list 中的项目现在已连接到一个字符串中,并且都由 ___ 彼此分隔。

你现在知道如何通过使用 join() 方法将子字符串放在一起来形成 Python 字符串。

总结

在这篇教程中,你学到了这些知识点:

  • <string>.split(sep, maxsplit) 基于 sep 按照 maxsplit 指定的次数分割 <string>
  • <sep.join(<iterable>) 使用 <sep> 作为分隔符连接 <iterable> 子字符串。

希望本教程对你有所帮助。祝你编码愉快!

原文:Python String split() and join() Methods – Explained with Examples,作者:Bala Priya C