Python String split() 方法



Python String split() 方法将字符串中的所有单词拆分,由指定的分隔符分隔。此分隔符是分隔符字符串,可以是逗号、句号、空格字符或用于分隔字符串的任何其他字符。

通常,如果多个分隔符组合在一起,该方法会将其视为空字符串。但是,如果未指定分隔符或 None ,并且字符串由连续的空格组成;它们被视为单个分隔符,如果字符串有前导或尾随空格,则结果在开头或结尾将不包含空字符串。因此,拆分空字符串或仅包含空格且带有 None 分隔符的字符串会导致空字符串。

语法

以下是 Python 字符串 split() 方法的语法 -


 str.split(str="", num=string.count(str)).

参数

  • sep − 这是任何 delimeter,默认情况下它是 space。
  • maxsplit − 这是行数减 1

返回值

此方法返回行列表。

当我们没有向方法传递任何参数时,默认字符(空格)被视为一个参数。在这种情况下,split() 方法在分隔字符串后返回行列表。


str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print(str.split( ))
print(str.split(' ', -1))

当我们运行上述程序时,它会产生以下结果。对于第一种情况,甚至其他分隔符(如行分隔符 (\n))也会被删除。

['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc', '\nLine4-abcd']

众所周知的分隔符作为参数传递给方法,以获取结果值作为分隔的行列表。

在此示例中,我们采用两个字符串作为输入;两者都包含分隔符。我们通过传递所需的分隔符作为参数来对两个字符串调用 split() 方法。


str1 = "abcde, 12345, !@#$%";
str2 = "14<65<189<235<456"
print(str1.split(','))
print()
print(str2.split('<'))

上述程序的输出如下 -

['abcde', '12345', '!@#$%']
['14', '65', '189', '235', '456']

在下面的示例中,我们将使用 split() 方法通过将 dot(.) 作为参数来分隔十进制数的整数和十进制部分。


str = "123.748289";
print("Separating the integer and decimal from the input number:")
print(str.split('.'))

让我们执行上面的程序来获得如下输出 -

Separating the integer and decimal from the input number:
['123', '748289']

当我们传递 separator 参数时,但 separator 参数在字符串中被组合在一起;该方法将其视为空字符串。

在下面的示例中,我们将创建一个值为 “aaa,,ccc,ddd,eee” 的字符串,并使用逗号 (“,”) 作为参数调用其上的 split() 方法。由于给定的字符串包含组合在一起的逗号;该方法为每个存在的逗号分隔符返回空字符串。


str = "aaa,,ccc,ddd,eee";
print(str.split(','))

上述程序的输出如下所示 -

['aaa', '', 'ccc', 'ddd', 'eee']

当我们传递 maxsplit 参数时,该方法返回一个行列表,以指定索引分隔。


str = "aaa,bbb,ccc,ddd,eee";
print(str.split(',', 2))

如果我们执行上面的程序,输出为 -

['aaa', 'bbb', 'ccc,ddd,eee']