本篇我们学习截断字符串头部和尾部字符的方法,包括 lstrip()、rstrip() 以及 strip()。这些方法都不会修改原始字符串,而是返回一个新的字符串。

字符串 lstrip() 方法

lstrip() 方法可以删除字符串头部的指定字符,语法如下:

str.lstrip([chars])

lstrip() 方法包含一个可选的参数。chars 参数用于指定需要删除的字符。如果不指定该参数,或者指定为 None,默认表示删除空白字符。

以下字符属于 Python 中的空白字符:

  • ’ ’ – 空格符
  • \t – 水平制表符
  • \n – 换行符
  • \r – 回车符
  • \x0b – 垂直制表符,也可以使用 \v 表示
  • \x0c – 换页符,也可以使用 \f 表示。

我们可以利用 string 模块查看所有的空白字符:

import string
string.whitespace

输出结果如下:

' \t\n\r\x0b\x0c'

下面我们来看几个使用 lstrip() 方法的示例。

以下示例使用 lstrip() 方法删除了字符串“\t Readability counts.”左侧的空白字符:

s = '\t Readability counts.'
print(s)

new_s = s.lstrip()
print(new_s)

输出结果如下:

Readability counts.
Readability counts.

示例中的字符串 s 左侧包含了一个制表符和空格。

以下示例使用 lstrip() 方法将一个字符串列表转换为数字列表,字符串左侧可能包含 $ 或者 £ 符号:

data = ['$1250', '£2300', '3000']

amounts = [float(amount.lstrip('$£'))
        for amount in data]

print(amounts)

输出结果如下:

[1250, 2300, 3000]

字符串 rstrip() 方法

rstrip() 方法用于删除字符串尾部的指定字符,语法如下:

str.rstrip([chars])

rstrip() 方法包含一个可选的参数。chars 参数用于指定需要删除的字符。如果不指定该参数,或者指定为 None,默认表示删除空白字符。

以下示例使用 rstrip() 方法删除了字符串“Now is better than never. \n”右侧的空白字符:

s = 'Now is better than never. \n'
print(s)

new_s = s.rstrip()
print(new_s)

输出结果如下:

Now is better than never.

Now is better than never.

示例中的字符串 s 右侧包含了一个空格和换行符。

以下示例使用 rstrip() 方法删除字符串“Section 1. Issue #15…”右侧的 . 和 # 字符:

heading = 'Section 1. Issue #15.....'
new_heading = heading.rstrip('.#')

print(new_heading)

输出结果如下:

Section 1. Issue #15

由于 # 右侧还有字符“15”,所以没有被删除。

字符串 strip() 方法

strip() 方法的作用相当于 lstrip() 加上 rstrip(),可以同时删除字符串两端的指定字符:

str.strip([chars])

strip() 方法包含一个可选的参数。chars 参数用于指定需要删除的字符。如果不指定该参数,或者指定为 None,默认表示删除空白字符。

以下示例使用 strip() 方法删除了字符串“\tHi, how are you?\n ”两侧的空白字符:

s = '\tHi, how are you?\n '
print(s)

new_s = s.strip()
print(new_s)

输出结果如下:

Hi, How are you?

Hi, How are you?

示例中的字符串 s 左侧包含了一个制表符,右侧包含了一个换行符和空格符。

以下示例使用 strip() 方法删除字符串“#…Section 1.2.3 Bug #45…”两侧的 . 和 # 字符:

heading = '#.....Section 1.2.3 Bug #45.....'
new_heading = heading.strip('.#')

print(new_heading)

输出结果如下:

Section 1.2.3 Bug #45

总结

  • 字符串 lstrip(chars)、rstrip(chars) 以及 strip(chars) 方法分别用于删除字符串左侧、右侧以及两侧的指定字符。
  • 默认删除空白字符,包括空格符、水平制表符、垂直制表符、换行符、回车符、换页符。