在 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

▶ 现在让我们通过将它设置为等于 2 来使用可选的 maxsplit 参数。

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 拆分 <string>maxsplit 表示拆分的次数。
  • <sep.join(<iterable>) 使用 <sep> 作为分隔符连接 <iterable> 中的字符串。

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

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