Python String rsplit() 函数用法

2023-09-17 22:22:41

rsplit() 方法与从指定分隔符拆分字符串并返回包含字符串元素的列表对象split方法相同。 默认分隔符是任何空格字符,例如空格、tn等。

split()rsplit() 之间的唯一区别是指定 maxsplit 参数时。如果指定了 maxsplit 参数,则 rsplit() 方法开始从右侧(从最后一个字符)拆分字符串, 而split()方法从左侧(从第一个字符)开始拆分。

语法:

str.rsplit(separator, maxsplit)

参数:

分隔符
  1. :(可选)分隔符字符串。默认分隔符是任何空格字符,例如空格、tn等。
  2. 最大拆分:(可选)定义可以执行的最大拆分数。因此,该列表最多可以包含maxsplit + 1元素。默认的最大拆分为 -1,表示无限拆分。

返回值:

返回包含字符串元素的列表对象。

下面的示例演示 rsplit() 方法的简单用法,该方法与 split() 方法相同。

mystr = 'Hello World'
print(mystr.rsplit())
print('Hello     World'.rsplit())
print('HellotWorld'.rsplit())
print('HellonWorld'.rsplit())
print('Hellou2028World'.rsplit())

输出:

['Hello', 'World']
['Hello', 'World']
['Hello', 'World']
['Hello', 'World']
['Hello', 'World']

在上面的示例中,所有字符串都拆分为默认空格字符,例如 ''、''、't' 和 ' ',并返回一个列表['Hello', 'World'] 。 甚至它在行分隔符"u2028"的 Unicode 字符处拆分。

下面的示例指定分隔符。

langs = 'C,Python,R,Java,SQL,Hadoop'
print(langs.rsplit(','))
fruits = 'apples$banana$mango$fig$pear'
print(fruits.rsplit('$'))

输出:

['C', 'Python', 'R', 'Java', 'SQL', 'Hadoop']
['apples', 'banana', 'mango', 'fig','pear']

在上面的示例中,langs.rsplit(',')将逗号,指定为分隔符,fruits.rsplit('$')$符号指定为分隔符。 因此,rsplit() 方法将在每个分隔符处重新拆分字符串,并将字符串的每个部分包含在列表中。

如果指定的分隔符不存在,则返回一个列表,其中包含整个字符串作为元素。

langs = 'C,Python,R,Java,SQL,Hadoop'
print(langs.rsplit('@'))

输出:

['C,Python,R,Java,SQL,Hadoop']

注意:如果分隔符是空字符串'',则rsplit()方法将引发ValueError

下面的示例通过指定 maxsplit 参数来限制 rsplit。

langs = 'C,Python,R,Java,SQL,Hadoop'
print(langs.rsplit(',', 3))
fruits = 'apples$banana$mango$fig$pear'
print(fruits.rsplit('$', 2))

输出:

['C,Python,R', 'Java', 'SQL', 'Hadoop']
['apples$banana$mango', 'fig', 'pear']

在上面的示例中,langs.rsplit(',', 3)指定 3 作为 maxsplit 参数,因此它将langs字符串拆分 3 次,因此列表对象包含四个元素。 它从右侧开始拆分,因此第一个元素是剩余的字符串。(这是它与split()方法的不同之处。 同样,fruits.rsplit('$', 2)最多会被拆分两次,返回的列表将包含三个元素。