pin_drop当前位置:知识文库 ❯ 图文
Python字符串strip()方法
概述
str.strip()系列方法用于去除字符串首尾的指定字符,是文本清理中最常用的方法之一。Python提供了strip()、lstrip()和rstrip()三个方法,分别用于去除两端、左端和右端的字符。本篇教程将详细介绍这三个方法的语法和用法。
strip/lstrip/rstrip语法
strip
str.strip([chars])去除字符串两端(首尾)的指定字符,默认去除空白字符。
lstrip
str.lstrip([chars])去除字符串左端(开头)的指定字符。
rstrip
str.rstrip([chars])去除字符串右端(末尾)的指定字符。
参数说明
提示:
chars参数是一个字符集合,不是字符串。strip("abc")会去除两端的a、b、c中的任意一个,而不是去除"abc"这个子串。
默认用法(去除空白)
代码示例
s = " Hello, World! "
print(f"原字符串: '{s}'")
print(f"strip(): '{s.strip()}'")
print(f"lstrip(): '{s.lstrip()}'")
print(f"rstrip(): '{s.rstrip()}'")去除各种空白字符
默认去除的空白字符包括:空格、制表符\t、换行符\n、回车符\r等:
代码示例
s = "\t\n Hello \n\t"
print(f"原字符串: '{s}'")
print(f"strip(): '{s.strip()}'")
s = "\r\nHello\r\n"
print(f"原字符串: '{s}'")
print(f"strip(): '{s.strip()}'")指定字符
去除指定字符
代码示例
s = "###Hello###"
print(f"strip('#'): '{s.strip('#')}'")
print(f"lstrip('#'): '{s.lstrip('#')}'")
print(f"rstrip('#'): '{s.rstrip('#')}'")去除多种字符
代码示例
s = "***Hello World!!!"
print(f"strip('*!'): '{s.strip('*!')}'")
s = "0012345600"
print(f"strip('0'): '{s.strip('0')}'")
s = "xxHelloxxWorldxx"
print(f"strip('x'): '{s.strip('x')}'")提示:
chars是字符集合,会从两端持续去除匹配的字符,直到遇到不匹配的字符为止。
去除方向性
代码示例
s = "abchelloabc"
print(f"strip('abc'): '{s.strip('abc')}'")
print(f"lstrip('abc'): '{s.lstrip('abc')}'")
print(f"rstrip('abc'): '{s.rstrip('abc')}'")代码示例
综合运用strip方法:
代码示例
user_input = " 张三 "
name = user_input.strip()
print(f"用户名: '{name}'")
csv_line = " 张三, 25, 北京 "
fields = [field.strip() for field in csv_line.split(",")]
print(f"清理后字段: {fields}")
lines = [
" 第一行 ",
"\t第二行\t",
"第三行\n",
" 第四行\r\n",
]
for line in lines:
cleaned = line.strip()
print(f"清理: '{cleaned}'")
s = "0000012345600000"
result = s.strip("0")
print(f"去除首尾0: '{result}'")
s = "[Hello, World!]"
result = s.strip("[]")
print(f"去除方括号: '{result}'")
code = """
def hello():
print('Hello')
return True
"""
lines = code.splitlines()
cleaned_lines = [line.rstrip() for line in lines]
cleaned_code = "\n".join(cleaned_lines)
print(f"去除行尾空白:\n{cleaned_code}")注意事项
1.
strip()只去除首尾字符,不影响字符串中间的字符2.
chars参数是字符集合,不是子串,strip("ab")会去除a或b,不是去除"ab"3.
strip()会持续去除直到遇到不匹配的字符,不是只去除一次4. 默认去除所有空白字符(空格、制表符、换行符等),不仅仅是空格
5. 如果字符串两端没有匹配的字符,
strip()返回原字符串6.
strip()返回新字符串,不修改原字符串
小结
本篇教程详细介绍了strip()、lstrip()和rstrip()三个方法的用法。strip()去除两端字符,lstrip()去除左端字符,rstrip()去除右端字符。默认去除空白字符,也可以指定要去除的字符集合。这些方法是文本清理的基础工具,在处理用户输入、读取文件内容等场景中非常常用。
练习题
练习1
给定一个包含用户输入的列表 inputs = [" hello ", "\tworld\n", " python "],请使用strip()方法清理每个元素,并输出清理后的列表。
练习2
编写一个函数,接收一个用特定字符包围的字符串(如"[Hello]"、"(World)"、"{Python}"),去除首尾的包围字符,返回内容部分。提示:需要判断首尾字符是否匹配。
常见问题
strip()方法去除的是子串还是字符集合?
strip()方法的chars参数是字符集合,不是子串。例如strip("abc")会去除两端的a、b、c中的任意字符,而不是去除"abc"这个完整子串。
strip()默认去除哪些空白字符?
默认去除所有空白字符,包括空格、制表符(\t)、换行符(\n)、回车符(\r)等。
strip()会修改原字符串吗?
不会。strip()返回一个新字符串,不修改原字符串,因为Python中的字符串是不可变类型。
lstrip()和rstrip()有什么区别?
lstrip()只去除字符串左端(开头)的指定字符,rstrip()只去除右端(末尾)的指定字符,strip()则两端都去除。
如何去除字符串中间的空白字符?
strip()系列方法只去除首尾字符。要去除中间的空白,可以使用replace()方法或正则表达式re.sub()。
本文涉及AI创作
内容由AI创作,请仔细甄别