本篇我们学习截断字符串头部和尾部字符的方法,包括 lstrip()、rstrip() 以及 strip()。这些方法都不会修改原始字符串,而是返回一个新的字符串。
lstrip() 方法可以删除字符串头部的指定字符,语法如下:
str.lstrip([chars])
lstrip() 方法包含一个可选的参数。chars 参数用于指定需要删除的字符。如果不指定该参数,或者指定为 None,默认表示删除空白字符。
以下字符属于 Python 中的空白字符:
我们可以利用 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() 方法用于删除字符串尾部的指定字符,语法如下:
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() 方法的作用相当于 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